visual-studio-2010 - 如何实现两个按钮点击事件

标签 visual-studio-2010 visual-c++ outlook outlook-addin

我有一个功能区 xml,单击按钮时我必须为相应按钮打开两个不同的窗口窗体,但我无法在同一文件中定义两个不同的按钮单击功能。
xml:我有两个按钮 代码是

STDMETHOD(ButtonClicked)(IDispatch* ribbon)
    {//MessageBoxW(NULL,L"Button Clicked!",L"NativeAddin",MB_OK);
        NativeAddIn::ApplicationConfiguration ^appConfigurationform = gcnew NativeAddIn::ApplicationConfiguration();
        appConfigurationform->ShowDialog();
        return S_OK;
    }
STDMETHOD(ButtonClicked)(IDispatch* ribbon)
    {
        //MessageBoxW(NULL,L"Button Clicked!",L"NativeAddin",MB_OK);
        NativeAddIn::Helpme ^helpmeobj = gcnew NativeAddIn::Helpme();
        helpmeobj->ShowDialog();
        return S_OK;
    } 

如何在按钮单击时编写两个函数。 执行上面的代码时出现的错误是:

HRESULT CConnect::ButtonClicked(IDispatch *)' : member function already defined or declared.

<button id="GoToAppConfiguration" size="large" label="Application Configuration" imageMso="AutoArchiveSettings" onAction="ButtonClicked"/> 
<button id="GoToAppHelp" size="large" label="Help" imageMso="CreateReportFromWizard" onAction="ButtonClicked"/>

请帮忙......

最佳答案

您可以在“帮助”按钮中为 ButtonClicked 使用不同的名称。

<button id="GoToAppHelp" size="large" label="Help" imageMso="CreateReportFromWizard" onAction="ButtonHelpClicked"/>
STDMETHOD(ButtonHelpClicked)(IDispatch* ribbon)
{
    //MessageBoxW(NULL,L"Button Clicked!",L"NativeAddin",MB_OK);
    NativeAddIn::Helpme ^helpmeobj = gcnew NativeAddIn::Helpme();
    helpmeobj->ShowDialog();
    return S_OK;
} 

替代方法是使用 IRibbonControl context(ribbon 参数)并请求控件 ID 以触发 switch 语句。您只需使用一个 ButtonClicked 方法来处理所有按钮点击。

STDMETHOD(ButtonClicked)(IDispatch* ribbon)
{
    switch (ribbon.Id)
    {
     case "GoToAppConfiguration" : 
        //MessageBoxW(NULL,L"Button Clicked!",L"NativeAddin",MB_OK);
         NativeAddIn::ApplicationConfiguration ^appConfigurationform = gcnew   NativeAddIn::ApplicationConfiguration();
         appConfigurationform->ShowDialog();
         return S_OK;
     case "GoToAppHelp" : 
        //MessageBoxW(NULL,L"Button Clicked!",L"NativeAddin",MB_OK);
        NativeAddIn::Helpme ^helpmeobj = gcnew NativeAddIn::Helpme();
        helpmeobj->ShowDialog();
        return S_OK;
    }   
} 

关于visual-studio-2010 - 如何实现两个按钮点击事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10333826/

相关文章:

c++ - 仅当将值与 TRUE 进行比较时才会警告操作中 xxx 和 bool 的不安全混合

visual-c++ - vtable 中重载方法的顺序(在 win32 上)

outlook - 当Outlook 2007忽略css时,如何指定font-size?

c# - 找到 VS 2010 Pro 中未使用的所有对象以便可以安全地删除它们?

c++ - Visual Studio 2012 平台工具集设置不正确

c++ - 拦截 VBA 应用程序之间的消息

c - 使用 Microsoft Visual C++ 6 的 FTP 事务

excel - 使用 VB/VBA 搜索 Outlook 邮件并将特定数据提取到 Excel 工作表中

coldfusion - 如何从网页添加事件到iCal/Outlook/gmail?

c++ - 陷阱表示