#include <windows.h>
#include <windowsx.h>
/* Прототип используемой в программе функции */
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
void OnPaint(HWND);//Прототип функции OnPaint
void OnDestroy(HWND);//Прототип функции OnDestroy
/*Главная функция WinMain */
int WINAPI WinMain(HINSTANCE hInst, HINSTANCE, LPSTR, int)
{
char szClassName[] = "MainWindow";
char szTitle[] = "Программа 2";
MSG Msg;
WNDCLASS wc;
/* Регистрация класса главного окна */
ZeroMemory(&wc, sizeof(wc));
wc.lpfnWndProc = WndProc;
wc.hInstance = hInst;
wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
wc.hbrBackground = GetStockBrush(WHITE_BRUSH);
wc.lpszClassName = L"MainWindow";
RegisterClass(&wc);
/* Создание главного окна и отображение его на экране */
HWND hwnd = CreateWindow(L"MainWindow", L"Программа 2",
WS_OVERLAPPEDWINDOW, 250, 150, 400, 200,
HWND_DESKTOP, NULL, hInst, NULL);
ShowWindow(hwnd, SW_SHOWNORMAL);
/* Организация цикла обнаружения сообщений */
while (GetMessage(&Msg, NULL, 0, 0))
DispatchMessage(&Msg);
return 0;
}
/* Оконная функция WndProc главного окна */
LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch (msg)
{
HANDLE_MSG(hwnd, WM_PAINT, OnPaint);//Обработка сообщения WM_PAINT
HANDLE_MSG(hwnd, WM_DESTROY, OnDestroy);//Обработка сообщения WM_DESTROY
default:
return(DefWindowProc(hwnd, msg, wParam, lParam));
}
}
/*Функция обработки сообщения WM_PAINT*/
void OnDestroy(HWND)
{
PostQuitMessage(0);
}
/*Функция обработки события WM_PAINT*/
void OnPaint(HWND hwnd)
{
char szText[] = "Строка текста для вывода в главное окно";
PAINTSTRUCT ps;//Структура, требуемая для рисования в рабочей области
HDC hdc = BeginPaint(hwnd, &ps);//Получение контекста устройства
TextOut(hdc, 5, 30, L"Программа 2", strlen(szText));//Вывод строки текста
EndPaint(hwnd, &ps);//Освобождение контекста устройства
}