КонстантаОписание
CBRS_ALIGN_TOPПанель управления может закрепляться в верхней части окна
CBRS_ALIGN_BOTTOMПанель управления может закрепляться в нижней части окна
CBRS_ALIGN_LEFTПанель управления может закрепляться на левой стороне окна
CBRS_ALIGN_RIGHTПанель управления может закрепляться на правой стороне окна
CBRS_ALIGN_ANYПанель управления может закрепляться с любой стороны окна
CBRS_FLOAT_MULTIНесколько панелей управления могут объединяться вместе в одном мини-окне
CBRS_TOOLTIPSКогда пользователь устанавливает курсор на органы управления панели toolbar, их названия отображаются в маленькой прямоугольной рамке tool tips. Более подробно о tool tips вы можете прочитать в томе 22 серии “Библиотека системного программиста”
CBRS_FLYBYТекст в панели состояния изменяется, одновременно с отображением tool tips. В противном случае текст в панели состояния меняется только когда пользователь нажмет кнопку в панели управления
CBRS_SIZE_DYNAMICКогда панель управления отображается в окне, пользователь может изменять ее размеры. При этом органы управления панели будут отображаться в нескольких строках. Этот стиль доступен только для Visual C++ версии 4.0 и выше

По умолчанию MFC AppWizard устанавливает для панели управления стили CBRS_TOOLTIPS, CBRS_FLYBY, CBRS_SIZE_DYNAMIC. Вы можете изменить их по своему усмотрению.

m_wndToolBar.SetBarStyle(m_wndToolBar.GetBarStyle() | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC);

Чтобы панель управления могла отображаться в собственном маленьком окне, не прикрепленном ни к одной стороне родительского окна, два раза вызываются метод EnableDocking – для панели управления и для главного окна приложения. Затем вызывается метод DockControlBar для главного окна приложения.

m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);

EnableDocking(CBRS_ALIGN_ANY);

DockControlBar(&m_wndToolBar);

Метод PreCreateWindow

MFC AppWizard переопределяет для класса CMainFrame виртуальный метод PreCreateWindow, но не вносит в структуру cs никаких изменений и вызывает метод PreCreateWindow базового класса CFrameWnd.

BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs) {

 // TODO: Здесь вы можете внести изменения в структуру cs

 return CFrameWnd::PreCreateWindow(cs);

}

Методы AssertValid и Dump

Когда вы выполняете построение отладочной версии приложения, в состав класса CMainFrame включаются переопределения виртуальных методов AssertValid и Dump. Эти методы определены в базовом классе CObject и используются при отладке приложения.

Когда отладочный режим отключен, символ _DEBUG не определен и поэтому методы AssertValid и Dump класса CObject не переопределяются.

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

// Диагностические методы класса CMainFrame

#ifdef _DEBUG

void CMainFrame::AssertValid() const {

 CFrameWnd::AssertValid();

}

void CMainFrame::Dump(CDumpContext& dc) const {

 CFrameWnd::Dump(dc);

}

#endif //_DEBUG

На этом мы заканчиваем рассмотрение исходных текстов приложения с однооконным интерфейсом, созданных системой автоматизированного проектирования MFC AppWizard. В следующей главе мы расскажем как вы можете доработать полученное приложение, чтобы создать простейший графический редактор, с возможностью записи подготовленных в нем документов в файл.

Перейти на страницу:

Все книги серии Библиотека системного программиста

Похожие книги