我有一个功能区 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/