0

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

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。

有任何想法吗?

谢谢你!

4

1 回答 1

-1

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

于 2013-09-19T13:25:02.580 回答