Простейшее приложение WIN32
// =======================================================================
LRESULT WINAPI
WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{ // Выполняем обработку сообщений. Идентификатор
// сообщения передается через параметр msg
switch (msg)
{
16
// Это сообщение приходит, когда вы поместили курсор мыши в область главного окна //приложения и нажали левую кнопку мыши
case WM_LBUTTONDOWN:
{ MessageBox(NULL, "Нажата левая кнопка мыши", "Сообщение WM_LBUTTONDOWN", MB_OK | MB_ICONINFORMATION); return 0;}
// Это сообщение приходит, когда вы поместили курсор мыши в область главного окна //приложения и нажали правую кнопку мыши
case WM_RBUTTONDOWN:
{MessageBox(NULL, "Нажата правая кнопка мыши", "Сообщение WM_RBUTTONDOWN", MB_OK | MB_ICONINFORMATION); return 0;}
// Это сообщение приходит, когда вы нажали клавишу на клавиатуре
case WM_KEYDOWN:
{MessageBox(NULL, "Нажата клавиша на клавиатуре", "Сообщение WM_KEYDOWN", MB_OK | MB_ICONINFORMATION); return 0;}
// Это сообщение приходит, когда вы завершаете работу приложения стандартным для //Windows способом
case WM_DESTROY:
{// Инициируем завершение работы приложения, помещая в очередь приложения сообщение
// WM_QUIT. Это приведет к завершению цикла обработки сообщений в функции WinMain
PostQuitMessage(0); return 0;}
}
// Все сообщения, которые не обрабатываются нашей функцией окна, ДОЛЖНЫ передаваться // функции DefWindowProc
return DefWindowProc(hwnd, msg, wParam, lParam);
}
Функция WinMain регистрирует класс окна при помощи функции RegisterClassEx, затем создает окно при помощи функции CreateWindow и отображает его на экране при помощи функции ShowWindow. После этого запускается цикл обработки сообщений. WinMain не проверяет, не запущено ли приложение повторно, так как запуск нескольких копий приложения является обычной практикой для многих приложений. Однако, иногда может возникнуть необходимость в запрете повторного запуска. Как уже говорилось выше, для этого в WIN32 нельзя воспользоваться параметром hPrevInstance функции WinMain. Ниже приведен фрагмент кода, который при запуске приложения пытается найти окно своего приложения, и если окно присутствует в системе активизирует его и выдвигает на передний план. Собственно именно такой реакции более всего ожидает пользователь, когда запускает приложение.
предыдущаяследующая