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


Листинг 2.5. Файл ownbut\ownbut.cpp


// ---------------------------------------- // Управление нестандартной кнопкой // ----------------------------------------

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

// Прототипы функций BOOL InitApp(HINSTANCE); LRESULT CALLBACK _export WndProc(HWND, UINT, WPARAM, LPARAM); void DrawButton(LPDRAWITEMSTRUCT); void DrawBitmap(HDC hDC, int x, int y, HBITMAP hBitmap);

// Имя класса окна char const szClassName[] = "OwnButtonAppClass";

// Заголовок окна char const szWindowTitle[] = "Owner Draw Button Demo";

// Идентификаторы кнопок HWND hButton1, hButton2, hButton3, hButton4, hButton5;

// Идентификатор копии приложения HINSTANCE hInst;

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

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

// Сохраняем идентификатор текущей копии приложения // в глобальной переменной hInst = hInstance;

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

// После успешной инициализации приложения создаем // главное окно приложения hwnd = CreateWindow( szClassName, // имя класса окна szWindowTitle, // заголовок окна WS_OVERLAPPEDWINDOW, // стиль окна CW_USEDEFAULT, // задаем размеры и расположение CW_USEDEFAULT, // окна, принятые по умолчанию CW_USEDEFAULT, CW_USEDEFAULT, 0, // идентификатор родительского окна 0, // идентификатор меню hInstance, // идентификатор приложения NULL); // указатель на дополнительные // параметры

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

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

// Создаем пять кнопок

// Эту кнопку будет рисовать функция // родительского окна hButton1 = CreateWindow("button", "Button 1", WS_CHILD | WS_VISIBLE | BS_OWNERDRAW, 20, 20, 180, 30, hwnd, (HMENU) IDB_Button1, hInstance, NULL);




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



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