Операционная система Microsoft Windows 3.1 для программиста. Дополнительные главы


Листинг 1.1. Файл mdiapp/mdiapp.cpp


// ============================================================ // Простейшее MDI-приложение // ============================================================

#define STRICT #include <windows.h> #include <mem.h> #include "mdiapp.hpp"

// Прототипы функций BOOL InitApp(HINSTANCE); LRESULT CALLBACK _export FrameWndProc(HWND, UINT, WPARAM, LPARAM); LRESULT CALLBACK _export ChildWndProc(HWND, UINT, WPARAM, LPARAM);

// Имена классов окна char const szFrameClassName[] = "MDIAppClass"; char const szChildClassName[] = "MDIchildAppClass";

// Заголовок окна char const szWindowTitle[] = "Simple MDI Application";

HINSTANCE hInst;

HWND hwndFrame; // окно Frame Window HWND hwndClient; // окно Client Window HWND hwndChild; // окно Child Window

// ===================================== // Функция WinMain // ===================================== #pragma argsused

int PASCAL WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdLine, int nCmdShow) { MSG msg; // структура для работы с сообщениями

hInst = hInstance; // сохраняем идентификатор приложения

if(hPrevInstance) // может быть запущена return FALSE; // только одна копия приложения

// Инициализируем приложение if(!InitApp(hInstance)) return FALSE;

// Создаем главное окно приложения - Frame Window hwndFrame = CreateWindow( szFrameClassName, // имя класса окна szWindowTitle, // заголовок окна WS_OVERLAPPEDWINDOW, // стиль окна CW_USEDEFAULT, 0, // задаем размеры и расположение CW_USEDEFAULT, 0, // окна, принятые по умолчанию 0, // идентификатор родительского окна 0, // идентификатор меню hInstance, // идентификатор приложения NULL); // указатель на дополнительные параметры

// Если создать окно не удалось, завершаем приложение if(!hwndFrame) return FALSE;

// Рисуем главное окно ShowWindow(hwndFrame, nCmdShow); UpdateWindow(hwndFrame);

// Запускаем цикл обработки сообщений while(GetMessage(&msg, NULL, 0, 0)) { // Трансляция для MDI-приложения if(!TranslateMDISysAccel(hwndClient, &msg)) { TranslateMessage(&msg); DispatchMessage(&msg); } } return msg.wParam; }




Начало  Назад  Вперед



Книжный магазин