// 003.cpp : Defines the entry point for the application. // #include "stdafx.h" // Обработка сообщений WM_CHAR #include LRESULT CALLBACK WindowFunc(HWND, UINT, WPARAM, LPARAM) ; char szWinName[]="МоеОкно"; // Имя класса окна char szTitle[]="pR0ga"; // Имя класса окна int WINAPI WinMain(HINSTANCE hThisInst, HINSTANCE hPrevInst, LPSTR lpszArgs, int nWinMode) { HWND hwnd; MSG msg; WNDCLASS wcl; // Определить класс окна wcl.hInstance=hThisInst; // Дескриптор приложения wcl.lpszClassName=szWinName; // Имя класса окна wcl.lpfnWndProc=WindowFunc; // Функция окна wcl.style=8; // Стиль по умолчанию wcl.hIcon=LoadIcon(NULL,IDI_APPLICATION);// Иконка //wcl.hCursor=LoadCursor(NULL,DEFAULT); // Курсор wcl.hCursor=LoadCursor(NULL,IDC_ARROW); // Курсор wcl.lpszMenuName=NULL; // Без меню wcl.cbClsExtra=0; // Без дополнительной информации wcl.cbWndExtra=0; wcl.hbrBackground=CreateSolidBrush(RGB(100,50,150)); //wcl.hbrBackground=(HBRUSH)GetStockObject(GRAY_BRUSH); //Белый фон if(!RegisterClass(&wcl)) // Регистрируем класс окна return 0; hwnd=CreateWindow(szWinName, // Создать окно szTitle, WS_OVERLAPPEDWINDOW, // Стиль окна 300, // x-координата 400, // y-координата 600, // Ширина 450, // Высота HWND_DESKTOP, // Нет родител. окна NULL, // Нет меню hThisInst,// Дескриптор приложения NULL); // Нет дополнит. аргументов ShowWindow (hwnd, nWinMode); // Показать окно UpdateWindow (hwnd); // и перерисовать while(GetMessage(&msg,NULL,0,0)) // Запустить цикл { // обработки сообщений TranslateMessage(&msg); // Разреш. исп. клавиатуры DispatchMessage (&msg); // Вернуть управл. Windows } return msg.wParam; } // Следующая функция вызывается операционной // системой Windows и получает в качестве // параметров сообщения из очереди сообщений // данного приложения LRESULT CALLBACK WindowFunc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { switch(message) { case WM_DESTROY: // Завершение программы PostQuitMessage (0); break; default: // Все сообщения, не обрабатываемые в // данной функции, направляются на обработку // по умолчанию return DefWindowProc(hwnd,message, wParam,lParam); } return 0; }