Александр Фролов - 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 - читать книгу онлайн бесплатно, автор Александр Фролов
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Для создания и изменения таблиц акселераторов следует использовать редактор ресурсов Microsoft Visual C++. Он позволяет определить соответствие комбинаций клавиш и идентификаторов командных сообщений (рис. 3.3).

Рис 33 Редактор таблицы клавиш ускорения Для приложений имеющих оконный - фото 55

Рис. 3.3. Редактор таблицы клавиш ускорения

Для приложений имеющих оконный интерфейс, и созданных с использованием MFC AppWizard, таблица акселераторов создается автоматически. Таблица акселераторов загружается приложением, во время создания главного окна приложения методом LoadFrame. Мы уже рассматривали этот метод, который также используется для загрузки меню и ряда других ресурсов:

// Создаем главное окно многооконного приложения

CMainFrame* pMainFrame = new CMainFrame;

// Загружаем ресурсы с идентификатором IDR_MAINFRAME,

// в том числе и таблицу акселераторов

if (!pMainFrame->LoadFrame(IDR_MAINFRAME)) return FALSE;

Для многооконных приложений каждый тип документа может иметь собственную таблицу акселераторов. Эта таблица будет загружена автоматически вместе с меню (и некоторыми другими ресурсами), когда пользователь откроет окно просмотра документа данного типа.

Чтобы определить таблицу акселераторов для документов данного типа, надо просто включить ее в файл ресурсов приложения, присвоив ей идентификатор данного типа документов:

CMultiDocTemplate* pDocTemplate;

pDocTemplate = new CMultiDocTemplate(IDR_MULTITYPE, RUNTIME_CLASS(CMultiDoc), RUNTIME_CLASS(CChildFrame), RUNTIME_CLASS(CMultiView));

AddDocTemplate(pDocTemplate);

Если приложение создается без использования средств MFC AppWizard и модели документ – окно просмотра, вы можете загрузить таблицу акселераторов, с помощью метода LoadAccelTable , входящего в состав класса CFrameWnd:

BOOL LoadAccelTable(LPCTSTR lpszResourceName);

В качестве параметра lpszResourceName следует указать имя ресурса таблицы акселераторов. Если таблица акселераторов вместо строкового имени имеет числовой идентификатор, то вы должны воспользоваться макрокомандой MAKEINTRESOURCE.

Как и многие другие методы классов MFC, метод LoadAccelTable возвращает в случае успешного завершения ненулевое значение и нуль в случае ошибки. Ошибка во время загрузки таблицы акселераторов может случиться, если вы неправильно укажите идентификатор (или имя) ресурса таблицы.

Приложение MultiMenu

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

Наберите в редакторе исходный текст приложения и сохраните его в файле MultiMenu.cpp (листинг 3.1). Включите готовый файл MultiMenu.cpp в проект.

Листинг 3.1. Файл MultiMenu.cpp

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

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

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

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

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

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

#include

#include

#include

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

#include "resource.h"

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

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

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

class CMultiMenuApp : public CWinApp {

public:

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

// предназначенный для инициализации приложения

virtual BOOL InitInstance();

};

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

CMultiMenuApp MultiMenuApp;

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

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

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

class CMultiMenuWindow : public CFrameWnd {

protected:

// Панель состояния

CStatusBar m_wndStatusBar ;

// Флаг управляет строкой Prosess меню Mission

BOOL bEnable;

// Флаг управляет строкой Construction меню Mission

BOOL bRadio;

// Флаг управляет строкой Restrict меню Menu

int nCheck;

protected:

// Метод для создания окна приложения и панели состояния

afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);

// Методы для обработки командных сообщений

// от меню приложения

afx_msg void CMultiMenuWindow::OnDisable();

afx_msg void CMultiMenuWindow::OnCommand();

afx_msg void CMultiMenuWindow::OnExit();

afx_msg void CMultiMenuWindow::OnConstruct();

afx_msg void CMultiMenuWindow::OnRestrictMenu();

afx_msg void CMultiMenuWindow::OnFullMenu();

// Методы для обновления меню

afx_msg void OnUpdateProcess(CCmdUI* pCmdUI);

afx_msg void OnUpdateConstruct(CCmdUI* pCmdUI);

afx_msg void OnUpdateDisable(CCmdUI* pCmdUI);

public:

// Конструктор класса CMultiMenuWindow

CMultiMenuWindow();

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

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

DECLARE_MESSAGE_MAP()

};

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

// Таблица сообщений класса CMultiMenuWindow

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

BEGIN_MESSAGE_MAP(CMultiMenuWindow, CFrameWnd)

// Макрокоманда вызывает метод OnCreate

ON_WM_CREATE()

// Макрокоманда вызывает метод OnContextMenu

ON_WM_CONTEXTMENU()

// Макрокоманды для обработки командных сообщений

ON_COMMAND(ID_MENU_DISABLE, OnDisable)

ON_COMMAND(ID_MISSION_CONSTRUCT, OnConstruct)

ON_COMMAND(ID_FILE_EXIT, OnExit)

ON_COMMAND(ID_MISSION_PROCESS, OnCommand)

ON_COMMAND(ID_MENU_RESTRICT, OnRestrictMenu)

ON_COMMAND(ID_MENU_FULL, OnFullMenu)

// Обработчики сообщений ON_UPDATE_COMMAND_UI

ON_UPDATE_COMMAND_UI(ID_MISSION_PROCESS, OnUpdateProcess)

ON_UPDATE_COMMAND_UI(ID_MISSION_CONSTRUCT, OnUpdateConstruct)

ON_UPDATE_COMMAND_UI(ID_MENU_DISABLE, OnUpdateDisable)

END_MESSAGE_MAP()

// Индикатор панели управления

UINT indicator = ID_SEPARATOR;

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

// Метод InitInstance класса CMultiMenuApp

// Создает главное окно приложения и отображает его на экране

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

BOOL CMultiMenuApp::InitInstance() {

m_pMainWnd = new CMultiMenuWindow();

m_pMainWnd->ShowWindow(m_nCmdShow);

m_pMainWnd->UpdateWindow();

return TRUE;

}

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

// Конструктор класса CMultiMenuWindow

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

CMultiMenuWindow::CMultiMenuWindow() {

// Создаем окно приложения, соответствующее

// данному объекту класса CMultiMenuWindow

Create(NULL, "Multi Menu Sample", WS_OVERLAPPEDWINDOW, rectDefault, NULL, MAKEINTRESOURCE(IDR_FULL_MENU));

// Загружаем таблицу клавиш акселерации

LoadAccelTable(MAKEINTRESOURCE(IDR_ACCELERATOR));

// Инициализируем флаги

bEnable = TRUE;

bRadio = TRUE;

nCheck = 0;

}

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

// Метод OnCreate класса CMultiMenuWindow

// Вызывается во время создания окна приложения

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

int CMultiMenuWindow::OnCreate(LPCREATESTRUCT lpCreateStruct) {

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

Интервал:

Закладка:

Сделать


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

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




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


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


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

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