我有多个类别的功能区控件。每个类别都有一个或几个按钮。我为功能区中的所有按钮添加了更新处理程序:
BEGIN_MESSAGE_MAP(CMainFrame, CFrameWndEx)
[...]
ON_UPDATE_COMMAND_UI(ID_SERVER_INFO, &CMainFrame::OnServerInfoUpdate)
ON_UPDATE_COMMAND_UI(ID_SERVER_INFO2, &CMainFrame::OnAppStopUpdate)
ON_UPDATE_COMMAND_UI(ID_APP_START, &CMainFrame::OnAppStartUpdate)
ON_UPDATE_COMMAND_UI(ID_APP_STOP, &CMainFrame::OnAppStopUpdate)
[...]
END_MESSAGE_MAP()
ID_SERVER_INFO和ID_SERVER_INFO2位于第一类,ID_APP_START和ID_APP_STOP位于第二类。因此,ON_UPDATE_COMMAND_UI只调用第一类中的按钮,即仅用于ID_SERVER_INFO和ID_SERVER_INFO2,但从不用于ID_APP_START和ID_APP_STOP。
有什么想法吗?
谢谢!
答案 0 :(得分:-1)
您可能需要考虑为每个类别指定一个处理程序,并使用传递的CCmdUI对象来更新相应的UI对象,而不是指定多个难以维护的处理程序。