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


Управление курсором мыши с помощью клавиатуры - часть 2


memset(&wc, 0, sizeof(wc));

wc.style = CS_HREDRAW | CS_VREDRAW; wc.lpfnWndProc = (WNDPROC) WndProc; wc.cbClsExtra = 0; wc.cbWndExtra = 0; wc.hInstance = hInstance; wc.hIcon = LoadIcon(NULL, IDI_APPLICATION); wc.hCursor = LoadCursor(NULL, IDC_ARROW); wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1); wc.lpszMenuName = (LPSTR)NULL; wc.lpszClassName = (LPSTR)szClassName;

aWndClass = RegisterClass(&wc); return (aWndClass != 0); }

Функция WinMain создает одно главное окно и не имеет никаких особенностей.

Функция главного окна приложения приведена в листинге 6.8.

Листинг 6.8. Файл mousekey\wndproc.cpp

#define STRICT #include <windows.h>

// Прототипы функций int max(int value1, int value2); int min(int value1, int value2);

// -------------------------------------------- // Функция max // -------------------------------------------- int max(int value1, int value2) { return((value1 > value2) ? value1 : value2); }

// -------------------------------------------- // Функция min // -------------------------------------------- int min(int value1, int value2) { return((value1 < value2) ? value1 : value2); }

// ===================================== // Функция WndProc // ===================================== LRESULT CALLBACK _export WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { static POINT pt; RECT rc;

switch (msg) { // Нажали клавишу case WM_KEYDOWN: { // Получаем текущие экранные // координаты курсора мыши GetCursorPos(&pt);

// Преобразуем экранные координаты // в оконные координаты ScreenToClient(hwnd, &pt);

// Для клавиш позиционирования текстового // курсора изменяем соответствующим образом // координаты курсора мыши switch(wParam) { case VK_DOWN: // вниз { pt.y += 20; break; } case VK_UP: // вверх { pt.y -= 20; break; } case VK_LEFT: // влево { pt.x -= 20; break; } case VK_RIGHT: // вправо { pt.x += 20; break; } // Для всех остальных клавиш // ничего не делаем default: { return 0; } }

// Получаем координаты внутренней // области окна GetClientRect(hwnd, &rc);




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



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