Александр Фролов - Microsoft Visual C++ и MFC. Программирование для Windows 95 и Windows NT. Часть 2

Тут можно читать онлайн Александр Фролов - Microsoft Visual C++ и MFC. Программирование для Windows 95 и Windows NT. Часть 2 - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-programming, издательство Диалог-МИФИ, год 1996. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Microsoft Visual C++ и MFC. Программирование для Windows 95 и Windows NT. Часть 2
  • Автор:
  • Жанр:
  • Издательство:
    Диалог-МИФИ
  • Год:
    1996
  • Город:
    Москва
  • ISBN:
    нет данных
  • Рейтинг:
    3.89/5. Голосов: 91
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 80
    • 1
    • 2
    • 3
    • 4
    • 5

Александр Фролов - Microsoft Visual C++ и MFC. Программирование для Windows 95 и Windows NT. Часть 2 краткое содержание

Microsoft Visual C++ и MFC. Программирование для Windows 95 и Windows NT. Часть 2 - описание и краткое содержание, автор Александр Фролов, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

Книга посвящена программированию в среде Microsoft Visual C++ с использованием библиотеки классов MFC. В ней мы расскажем о разработке приложений с многооконным пользовательским интерфейсом, использовании классов MFC для создания меню, панелей управления и состояния. Рассмотрим возможности повторного использования программного кода, предоставляемые Microsoft Visual C++. Отдельную главу книги мы посвятили разработке приложений, взаимодействующих с базами данных через драйвера ODBC.

Книга предназначена для всех, кто интересуется программированием в среде операционных систем Windows 95 и Windows NT версий 3.51 и 4.0.

Microsoft Visual C++ и MFC. Программирование для Windows 95 и Windows NT. Часть 2 - читать онлайн бесплатно полную версию (весь текст целиком)

Microsoft Visual C++ и MFC. Программирование для Windows 95 и Windows NT. Часть 2 - читать книгу онлайн бесплатно, автор Александр Фролов
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

В файле Afxwin.h, в котором объявлен класс CFrameWnd, вы можете найти объявления входящих в него методов OnUpdateControlBarMenu и OnBarCheck:

class CFrameWnd : public CWnd {

// ...

// 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 следующим образом:

#define AFX_IDW_TOOLBAR 0xE800

#define AFX_IDW_STATUS_BAR 0xE801

#define ID_VIEW_TOOLBAR 0xE800

#define ID_VIEW_STATUS_BAR 0xE801

Метод GetControlBar класса CFrameWnd определяет указатель на объект класса CControlBar, который представляет панель управления или панель состояния с идентификатором nID. Идентификаторы строк меню ID_VIEW_TOOLBAR и ID_VIEW_STATUS_BAR соответствуют стандартным идентификаторам панели управления AFX_IDW_TOOLBAR и панели состояния AFX_IDW_STATUS_BAR.

При выборе из меню View строки Toolbar передается командное сообщение ID_VIEW_TOOLBAR, а при выборе строки Status bar — сообщение ID_VIEW_STATUS_BAR. Во время обработки этих сообщений, вызов метода GetControlBar определит объект класса CControlBar, соответствующий либо панели управления AFX_IDW_TOOLBAR, либо панели состояния AFX_IDW_STATUS_BAR.

Затем метод ShowControlBar отображает или закрывает соответствующую панель. Если панель была открыта, метод ShowControlBar скрывает ее и наоборот.

Аналогичным образом устроен метод OnUpdateControlBarMenu класса CFrameWnd, который обрабатывает команды обновления (по умолчанию, он обрабатывает команды обновления от строк Toolbar и Status bar меню View).

Метод OnUpdateControlBarMenu проверяет, отображается ли на экране панель управления или панель состояния с идентификатором, соответствующим идентификатору команды обновления. Если панель отображается, то строка меню отмечается символом √:

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

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

void CFrameWnd::OnUpdateControlBarMenu(CCmdUI* pCmdUI){

ASSERT(ID_VIEW_STATUS_BAR == AFX_IDW_STATUS_BAR);

ASSERT(ID_VIEW_TOOLBAR == AFX_IDW_TOOLBAR);

CControlBar* pBar = GetControlBar(pCmdUI->m_nID);

if (pBar != NULL) {

pCmdUI->SetCheck((pBar->GetStyle() & WS_VISIBLE) != 0);

return;

}

pCmdUI->ContinueRouting();

}

В конце метода OnUpdateControlBarMenu класса CFrameWnd вызывается метод ContinueRouting класса CCmdUI, который направляет команду обновления для дальнейшей обработки другим классам MFC (см. раздел “ Обработка командных сообщений ”).

Приложение MultiBar

Создайте новый проект под названием MultiBar. В качестве типа приложения выберите из списка Type строку Application. Настройте проект MultiBar, точно также как вы настраивали проект Bar – укажите, что приложение будет работать с библиотекой классов MFC.

Наберите в редакторе исходный текст приложения и сохраните его в файле MultiBar.cpp (листинг 3.7). За основу вы можете взять файл Bar.cpp приложения Bar. Включите готовый файл MultiBar.cpp в проект.

Листинг 3.7. Файл MultiBar.cpp

//============================================================

// Приложение MultiBar

// (c) Frolov G.V., 1996

// E-mail: frolov@glas.apc.org

//============================================================

// Исключаем редко используемые определения из

// включаемых файлов

#define VC_EXTRALEAN

// Включаемый файл для MFC

#include

#include

#include

// Включаемый файл для ресурсов приложения

#include "resource.h"

//============================================================

// Класс CMultiBarApp - главный класс приложения

//============================================================

class CMultiBarApp : public CWinApp {

public:

// Мы будем переопределять метод InitInstance

virtual BOOL InitInstance();

};

// Создаем объект приложение класса CMultiBarApp

CMultiBarApp MultiBarApp;

//============================================================

// Класс CExtendedBar - класс панели управления Extended

//============================================================

class CExtendedBar : public CToolBar {

public:

// Дополнительные органы управления панели Extended

CEdit m_edit; // текстовый редактор

CComboBox m_combo_box; // список с текстовым редактором

};

//============================================================

// Класс CMultiBarWindow - представляет главное окно

//============================================================

class CMultiBarWindow : public CFrameWnd {

// Определяем панели управления

protected:

// Панель управления Player

CToolBar m_wndPlayerBar;

// Панель управления Style

CToolBar m_wndStyleBar;

// Панель управления Extended

CExtendedBar m_wndExtendedBar;

protected:

// Метод OnCreate используется для создания

// панелей управления

afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);

public:

// Объявляем конструктор класса CMultiBarWindow

CMultiBarWindow();

// Объявляем методы для обработки команд от панелей

// управления

afx_msg void BarCommandOne();

afx_msg void BarCommandRange(UINT nID);

afx_msg void AddStringToComboBox();

// Объявляем метод для обработки команд от меню View

afx_msg BOOL ShowStyle(UINT nID);

// Макрокоманда необходима, так как класс

// CMultiBarWindow обрабатывает сообщения

DECLARE_MESSAGE_MAP()

};

//============================================================

// Метод BarCommandRange

// Обрабатывает команды от панели управления

//============================================================

void CMultiBarWindow::BarCommandRange(UINT nID) {

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Александр Фролов читать все книги автора по порядку

Александр Фролов - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Microsoft Visual C++ и MFC. Программирование для Windows 95 и Windows NT. Часть 2 отзывы


Отзывы читателей о книге Microsoft Visual C++ и MFC. Программирование для Windows 95 и Windows NT. Часть 2, автор: Александр Фролов. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x