Пытаюсь в окне сделать кнопку.
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) {
HFONT hFont;
HWND hButton;
switch(message) {
case WM_CREATE:
hButton = CreateWindow("button", "Press me!",
WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
5, 5, 100, 100,
hWnd, (HMENU)(1),
(HINSTANCE)GetWindowLong(hWnd, -6), NULL);
hFont = (HFONT)GetStockObject(DEFAULT_GUI_FONT);
SendMessage(hButton, WM_SETFONT, (WPARAM)hFont, 1);
return 0 ;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return DefWindowProc(hWnd, message, wParam, lParam) ;
}
Получается такая:
А как сделать кнопку, по стилю как в остальных приложениях (такую, например: ). Система Windows 7, компилятор gcc.exe (tdm64-1) 5.1.0.
Ответ
Действительно, как сказал Abyx, надо было добавить манифест (я надеялся, что есть путь проще). В итоге порядок действий:
Создать файл Application.manifest (например в директории с main.c):
1 24 "Application.manifest"
Далее нужно скомпилировать файл ресурсов (выполнить команду в командной строке):
windres resources.rc -o resources.o
Нужно добавить некоторый код в main.cpp
#define _WIN32_WINNT 0x0600 //для запуска нужна система Vista или новее
#include
g++ -o program.exe main.cpp resources.o -lcomctl32 -mwindows
Комментариев нет:
Отправить комментарий