2015-03-18 3 views
0

Я создал приложение с использованием Windows API и использовал папку ресурса, чтобы изменить значок на пользовательский, который я сделал. Теперь программа использует мой значок на рабочем столе, однако в строке заголовка есть значок по умолчанию, это точно. Default IconКак изменить значок заголовка с помощью winapi

Теперь, как я могу изменить его на свой пользовательский значок? Я использую MSVC++

WNDCLASS wndclass; 

wndclass.style = CS_HREDRAW | CS_VREDRAW; 
wndclass.lpfnWndProc = WndProc; 
wndclass.cbClsExtra = 0; 
wndclass.cbWndExtra = 0; 
wndclass.hInstance = hInstance; 
wndclass.hIcon = LoadIcon(NULL, IDI_APPLICATION); 
wndclass.hCursor = LoadCursor(NULL, IDC_ARROW); 
wndclass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); 
wndclass.lpszMenuName = NULL; 
wndclass.lpszClassName = szAppName; 


hwnd = CreateWindow(szAppName, 
    TEXT("Random"), 
    WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX, 
    CW_USEDEFAULT, 
    CW_USEDEFAULT, 
    300, 
    120, 
    NULL, 
    NULL, 
    hInstance, 
    NULL); 
+0

Пожалуйста, разместите код, который вы используете, который вызывает 'CreateWindow' /' CreateWindowEx'. – Dai

+0

Является ли это чистой программой WinAPI, или вы используете инфраструктуру, такую ​​как MFC? –

+0

Без рамки MFC или Qt или что-то еще. Это просто чистый WinAPI –

ответ

4

Если вы используете RegisterClassEx зарегистрировать свой класс окна, то WNDCLASSEX структура имеет hIconSm поле, которое позволяет задать небольшой значок. Если вы идете этим путем, не забудьте также инициализировать поле cbSize.

В качестве альтернативы вы можете назначить небольшой значок в окно после создания, используя сообщение WM_SETICON.

+0

Большое спасибо, это было именно то, чего я пытался добиться. –

Смежные вопросы