功能区按钮的ON_UPDATE_COMMAND_UI

时间:2013-09-18 20:12:46

标签: c++ windows mfc

我有多个类别的功能区控件。每个类别都有一个或几个按钮。我为功能区中的所有按钮添加了更新处理程序:

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。

有什么想法吗?

谢谢!

1 个答案:

答案 0 :(得分:-1)

您可能需要考虑为每个类别指定一个处理程序,并使用传递的CCmdUI对象来更新相应的UI对象,而不是指定多个难以维护的处理程序。