Различия
Показаны различия между двумя версиями страницы.
— | shablon_winapi_gui [2025/07/06 12:39] (текущий) – создано - внешнее изменение 127.0.0.1 | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
+ | ====== Шаблон WinAPI GUI ====== | ||
+ | < | ||
+ | /* Простейщее WinAPI приложение. Шаблон. | ||
+ | */ | ||
+ | |||
+ | #include < | ||
+ | |||
+ | # | ||
+ | |||
+ | |||
+ | |||
+ | LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam); // прототип функции WndProc | ||
+ | |||
+ | |||
+ | |||
+ | int WINAPI _tWinMain(HINSTANCE hInstance, // дескриптор текущего экземпляра окна | ||
+ | |||
+ | | ||
+ | |||
+ | | ||
+ | |||
+ | | ||
+ | |||
+ | ) | ||
+ | |||
+ | { | ||
+ | |||
+ | MSG uMsg; | ||
+ | |||
+ | HWND hMainWnd; | ||
+ | |||
+ | TCHAR szWindowClass[] = L" | ||
+ | |||
+ | WNDCLASSEX wcex; // объявление переменной типа структура оконного класса | ||
+ | |||
+ | |||
+ | |||
+ | wcex.cbSize = sizeof(WNDCLASSEX); | ||
+ | |||
+ | wcex.style = CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS; | ||
+ | |||
+ | wcex.lpfnWndProc = WndProc; // | ||
+ | |||
+ | wcex.cbClsExtra = 0; // доп. поля, кот могут потребоваться дальше | ||
+ | |||
+ | wcex.cbWndExtra = 0; // доп. поля, кот могут потребоваться дальше | ||
+ | |||
+ | wcex.hInstance = hInstance;// | ||
+ | |||
+ | wcex.hIcon = LoadIcon(hInstance, | ||
+ | |||
+ | wcex.hCursor = LoadCursor(NULL, | ||
+ | |||
+ | wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); | ||
+ | |||
+ | wcex.lpszMenuName = NULL; // определение меню | ||
+ | |||
+ | wcex.lpszClassName = szWindowClass; | ||
+ | |||
+ | wcex.hIconSm = NULL; // | ||
+ | |||
+ | |||
+ | |||
+ | // Регистрируем класс окна | ||
+ | |||
+ | if (!RegisterClassEx(& | ||
+ | |||
+ | MessageBox(NULL, | ||
+ | |||
+ | return 0; | ||
+ | |||
+ | } | ||
+ | |||
+ | |||
+ | |||
+ | // Создаем основное окно приложения | ||
+ | |||
+ | hMainWnd = CreateWindow(szWindowClass/ | ||
+ | |||
+ | L"A Hellol Application"/ | ||
+ | |||
+ | WS_OVERLAPPEDWINDOW/ | ||
+ | |||
+ | CW_USEDEFAULT/ | ||
+ | |||
+ | 0/ | ||
+ | |||
+ | CW_USEDEFAULT/ | ||
+ | |||
+ | 0/ | ||
+ | |||
+ | (HWND)NULL/ | ||
+ | |||
+ | (HMENU)NULL/ | ||
+ | |||
+ | (HINSTANCE)hInstance/ | ||
+ | |||
+ | NULL/ | ||
+ | |||
+ | );// | ||
+ | |||
+ | |||
+ | |||
+ | // Показываем наше окно | ||
+ | |||
+ | ShowWindow(hMainWnd/ | ||
+ | |||
+ | UpdateWindow(hMainWnd); | ||
+ | |||
+ | |||
+ | |||
+ | // Выполняем цикл обработки сообщений до закрытия приложения | ||
+ | |||
+ | while (GetMessage(& | ||
+ | |||
+ | NULL/ | ||
+ | |||
+ | 0/ | ||
+ | |||
+ | 0/ | ||
+ | |||
+ | )/ | ||
+ | |||
+ | { | ||
+ | |||
+ | TranslateMessage(& | ||
+ | |||
+ | DispatchMessage(& | ||
+ | |||
+ | } | ||
+ | |||
+ | |||
+ | |||
+ | return 0; | ||
+ | |||
+ | } | ||
+ | |||
+ | |||
+ | |||
+ | LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) | ||
+ | |||
+ | { | ||
+ | |||
+ | //int wmId, wmEvent; | ||
+ | |||
+ | PAINTSTRUCT ps; | ||
+ | |||
+ | HDC hdc; | ||
+ | |||
+ | |||
+ | |||
+ | switch (uMsg) | ||
+ | |||
+ | { | ||
+ | |||
+ | case WM_COMMAND: | ||
+ | |||
+ | // | ||
+ | |||
+ | // wmEvent = HIWORD(wParam); | ||
+ | |||
+ | case WM_PAINT: | ||
+ | |||
+ | hdc = BeginPaint(hWnd, | ||
+ | |||
+ | // TODO: Add any drawing code here... | ||
+ | |||
+ | EndPaint(hWnd, | ||
+ | |||
+ | break; | ||
+ | |||
+ | case WM_DESTROY: | ||
+ | |||
+ | PostQuitMessage(0); | ||
+ | |||
+ | break; | ||
+ | |||
+ | default: | ||
+ | |||
+ | return DefWindowProc(hWnd, | ||
+ | |||
+ | } | ||
+ | |||
+ | return 0; | ||
+ | |||
+ | } | ||
+ | |||
+ | |||
+ | </ |
📌 Удобный подбор VPS по параметрам доступен на DIEGfinder.com - официальном инструменте проекта DIEG. Это часть единой экосистемы, созданной для того, чтобы помочь быстро найти подходящий VPS/VDS сервер для любых задач хостинга.
📌 Для тестирования скриптов, установщиков VPN и Python-ботов рекомендуем использовать надежные VPS на короткий срок. Подробнее о быстрой аренде VPS для экспериментов - читайте здесь.
💥 Подпишись в Телеграм 💥 и задай вопрос по сайтам и хостингам бесплатно!7 Самых Популярных Статей
- Как запустить скрипты и веб-приложения на Python
- Что такое страны TIER 1,2,3
- 7 способов сравнения файлов по содержимому в Windows или Linux
- Установка и тестирование веб-панели HestiaCP
- Nginx простые примеры конфигурации
- top, htop, atop определение загрузки ОС (Load average, LA)
- Использование rsync в примерах
7 Самых Популярных Обзоров
- Хостинг для Python-скриптов и приложений
- ТОП 4 лучших антидетект браузеров (Бесплатные & Платные)
- Подборка купонов (промокоды) на хостинг, антидетект браузеры
- Обзор THE.Hosting (PQ Hosting): надежный хостинг с профессиональной поддержкой
- Хостинг в России
- Хостинг в Европе
- Обзор браузера Dolphin {anty} для мультиаккаунтинга