How to change the title bar icon using winapi

2020-02-13 04:12发布

I have made an application using Windows API and have used the resource folder to change the icon to a custom one I made. Now the program is using my icon on the desktop however in the title bar there is the default icon, this one to be exact.Default Icon

Now how am I suppose to change it to my custom icon? I am using 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);

1条回答
萌系小妹纸
2楼-- · 2020-02-13 04:25

If you use RegisterClassEx to register your window class, the WNDCLASSEX structure has a hIconSm field that lets you specify a small icon. If you go this way, don't forget to also initialize the cbSize field.

Alternatively, you can assign a small icon to a window after creation using the WM_SETICON message.

查看更多
登录 后发表回答