Операционная система Microsoft Windows 3.1 для программиста -том 1


Листинги файлов приложения


В отличие от первого приложения (листинг 1.1) новое приложение состоит из двух файлов - файла window.cpp (листинг 1.2), содержащего исходный текст функций приложения, и файла window.def (листинг 1.3), который является файлом определения модуля.

В файле window.cpp определены функции WinMain, InitApp и функция окна WndProc, то есть все функции, из которых состоит приложение. Файл window.def содержит инструкции редактору связей. Эти инструкции используются при создании загрузочного exe-файла приложения.

Рассмотрим подробно файл window.cpp.

Листинг 1.2. Файл window\window.cpp

// ---------------------------------------- // Простейшее приложение Windows // с циклом обработки сообщений // ---------------------------------------- #define STRICT #include <windows.h> #include <mem.h> // Прототипы функций BOOL InitApp(HINSTANCE); LRESULT CALLBACK _export WndProc(HWND, UINT, WPARAM, LPARAM); // Имя класса окна char const szClassName[] = "WindowAppClass"; // Заголовок окна char const szWindowTitle[] = "Window Application"; // ===================================== // Функция WinMain // Получает управление при запуске // приложения // ===================================== #pragma argsused int PASCAL WinMain(HINSTANCE hInstance, // идентификатор текущей // копии приложения HINSTANCE hPrevInstance, // идентификатор предыдущей // копии приложения LPSTR lpszCmdLine, // указатель на командную // строку int nCmdShow) // способ отображения // главного окна приложения { MSG msg; // структура для работы с сообщениями HWND hwnd; // идентификатор главного окна приложения // Проверяем, не запускалось ли это приложение ранее if(!hPrevInstance) { // Если не запускалось, вызываем функцию InitApp // для инициализации приложения. // Если инициализацию выполнить не удалось, // завершаем приложение if(!InitApp(hInstance)) return FALSE; } // Если данное приложение уже работает, // выводим сообщение о том, что допускается // запуск только одной копии приложения, и // затем завершаем работу приложения else { MessageBox(NULL, "Можно запускать только одну копию приложения", "Ошибка", MB_OK | MB_ICONSTOP); return FALSE; } // После успешной инициализации приложения создаем // главное окно приложения hwnd = CreateWindow( szClassName, // имя класса окна szWindowTitle, // заголовок окна WS_OVERLAPPEDWINDOW, // стиль окна CW_USEDEFAULT, // задаем размеры и расположение CW_USEDEFAULT, // окна, принятые по умолчанию CW_USEDEFAULT, CW_USEDEFAULT, 0, // идентификатор родительского окна 0, // идентификатор меню hInstance, // идентификатор приложения NULL); // указатель на дополнительные // параметры // Если создать окно не удалось, завершаем приложение if(!hwnd) return FALSE; // Рисуем окно.


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



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