Untitled

mail@pastecode.io avatar
unknown
c_cpp
2 years ago
2.5 kB
1
Indexable
Never
#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);//Освобождение контекста устройства
}