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


Листинг 1.5. Файл mditb/mditb.cpp


// ============================================================ // MDI-приложение с окнами Toolbar и Statusbar // ============================================================ #define STRICT #include <windows.h> #include <mem.h> #include "mditb.hpp"

BOOL InitApp(HINSTANCE); LRESULT CALLBACK _export FrameWndProc(HWND, UINT, WPARAM, LPARAM); LRESULT CALLBACK _export ChildWndProc(HWND, UINT, WPARAM, LPARAM); LRESULT CALLBACK _export TbWndProc(HWND, UINT, WPARAM, LPARAM); LRESULT CALLBACK _export SbWndProc(HWND, UINT, WPARAM, LPARAM);

char const szFrameClassName[] = "MDITBAppClass"; char const szChildClassName[] = "MDITBChildAppClass"; char const szTbClassName[] = "MDITBCtrlAppClass"; char const szSbClassName[] = "MDISBCtrlAppClass"; char const szWindowTitle[] = "MDI Application";

HINSTANCE hInst; HWND hwndFrame; // окно Frame Window HWND hwndClient; // окно Client Window HWND hwndChild; // окно Child Window HWND hwndTb; // окно Toolbar HWND hwndSb; // окно Statusbar

// ===================================== // Функция 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; 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)) { if(!TranslateMDISysAccel(hwndClient, &msg)) { TranslateMessage(&msg); DispatchMessage(&msg); } } return msg.wParam; }




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



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