Визуальное программирование и MFC


         

Создание панели состояния


Процесс создания панели состояния во многом схож с процессом создания панелей управления.

Сначала надо создать объект класса CStatusBar - он будет представлять панель состояния и управлять ею. Обычно для этого включают объект класса CStatusBar непосредственно в класс окна приложения, в котором будет размещена эта панель состояния:

class CMainFrame : public CMDIFrameWnd { protected: CStatusBar m_wndStatusBar; // панель состояния // другие описания класса ....... };

В некоторых случаях вместо использования класса CStatusBar от него предварительно наследуется дополнительный класс. В этом случае для создания панели состояния используют именно этот класс.

Следующим шагом является создание самой панели состояния и связывание ее с объектом, ее представляющим. Панель состояния создается вызовом метода Create класса CStatusBar:

BOOL Create( CWnd* pParentWnd, DWORD dwStyle = WS_CHILD | WS_VISIBLE | CBRS_BOTTOM, UINT nID = AFX_IDW_STATUS_BAR );

Через первый параметр указывается окно (родительское окно), для которого создается панель состояния.

Второй параметр позволяет задать характеристики панели управления, в том числе ее расположение внутри окна. Панель состояния является дочерним окном, поэтому в параметре стиля следует указать атрибут WS_CHILD. Атрибут WS_VISIBLE также следует указать, так как при его отсутствии панель не появится на экране, хотя и будет создана.

Панель состояния можно разместить либо вверху, либо внизу окна. Для этого в стиль панели состояния необходимо обязательно включить один из атрибутов CBRS_TOP или CBRS_BOTTOM.

Последний параметр метода Create определяет идентификатор дочернего окна панели состояния. По умолчанию используется идентификатор AFX_IDW_STATUS_BAR.

Следует заметить, что приложения, созданные MFC AppWizard, имеют меню View, содержащие строки “Toolbar” и “Status bar”. Эти строки позволяют показывать и скрывать панели управления и состояния в главном окне приложения. Для обработки сообщений о выборе строки меню “Status bar” используется метод OnUpdateControlBarMenu класса CFrameWnd.


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