如何使用winapi更改标题栏图标

时间:2015-03-18 19:46:10

标签: c++ c windows visual-studio winapi

我使用Windows API创建了一个应用程序,并使用资源文件夹将图标更改为我自定义的图标。现在程序正在桌面上使用我的图标,但是在标题栏中有一个默认图标,确切地说就是这个。Default Icon

现在我怎么想把它改成我的自定义图标? 我正在使用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 个答案:

答案 0 :(得分:4)

如果您使用RegisterClassEx注册窗口类,则WNDCLASSEX结构会有一个hIconSm字段,您可以在其中指定一个小图标。如果你这样做,不要忘记也初始化cbSize字段。

或者,您可以在创建后使用WM_SETICON消息为窗口指定一个小图标。