Microsoft Visual C++ и MFC. Программирование для Win95 и WinNT


              

Определения исходных текстов методов OnUpdateControlBarMenu


{

// ...

// Command Handlers

public:

   afx_msg void OnUpdateControlBarMenu(CCmdUI* pCmdUI);

   afx_msg BOOL OnBarCheck(UINT nID);

}

Определения исходных текстов методов OnUpdateControlBarMenu и OnBarCheck содержатся в файле Winfrm.cpp.

В файле Winfrm.cpp также можно найти обращения к методам OnUpdateControlBarMenu и OnBarCheck в таблице сообщений класса CFrameWnd. Приведем соответствующий фрагмент этой таблицы:

BEGIN_MESSAGE_MAP(CFrameWnd, CWnd)

   // turning on and off standard frame gadgetry

   ON_UPDATE_COMMAND_UI(ID_VIEW_STATUS_BAR,

                        OnUpdateControlBarMenu)

   ON_COMMAND_EX(ID_VIEW_STATUS_BAR, OnBarCheck)

   ON_UPDATE_COMMAND_UI(ID_VIEW_TOOLBAR,

                        OnUpdateControlBarMenu)

   ON_COMMAND_EX(ID_VIEW_TOOLBAR, OnBarCheck)

END_MESSAGE_MAP()

Две пары макрокоманд ON_UPDATE_COMMAND_UI и ON_COMMAND_EX вызывают методы OnUpdateControlBarMenu и OnBarCheck для обработки командных сообщений с идентификаторами ID_VIEW_STATUS_BAR и ID_VIEW_TOOLBAR. Командные сообщения с такими идентификаторами поступают при выборе строк Toolbar и Status Bar меню View.

Меню View, содержащее строки Toolbar и Status Bar, вставляется во все приложения с оконным интерфейсом, которые созданы с использованием средств MFC AppWizard.

Рассмотрим теперь сами методы OnBarCheck и OnUpdateControlBarMenu. Метод OnBarCheck класса CFrameWnd определен следующим образом:

//////////////////////////////////////////////////////////////

// Метод OnBarCheck класса CFrameWnd

BOOL CFrameWnd::OnBarCheck(UINT nID)

{

   ASSERT(ID_VIEW_STATUS_BAR == AFX_IDW_STATUS_BAR);

   ASSERT(ID_VIEW_TOOLBAR == AFX_IDW_TOOLBAR);

   CControlBar* pBar = GetControlBar(nID);

   if (pBar != NULL)

   {

      ShowControlBar(pBar,

        (pBar->GetStyle() & WS_VISIBLE) == 0, FALSE);

      return TRUE;

   }

   return FALSE;

}

Отладочная версия метода OnBarCheck класса CFrameWnd проверяет соответствие идентификаторов ID_VIEW_STATUS_BAR, AFX_IDW_STATUS_BAR и ID_VIEW_TOOLBAR, AFX_IDW_TOOLBAR. Отметим, что эти идентификаторы определены в файле Afxres.h следующим образом:


Содержание  Назад  Вперед