我应该在 WNDCLASSEX 结构中为 hIcon 和 hIconSm 使用什么值

What values should I use for hIcon and hIconSm in the WNDCLASSEX structure?

本文关键字:hIconSm 什么 hIcon WNDCLASSEX 结构 我应该      更新时间:2023-10-16

我知道hIconSm用于窗口标题栏或任务栏中。但是hIcon代表什么,我读到这个图标应该是24x24并且显示在Alt + Tab对话框中,但是在Windows 7中Alt + Tab对话框不显示图标,所以我是否仍然应该指定24x24图标?

此外,当我调用 LoadImage() 并指定图标大小

时,LoadImage() 是检索 ICO 文件中最大的图标并将其调整为指定大小,还是从 ICO 文件中检索具有指定大小的相应图标(如果存在)?

这是我使用的:

wc.hIcon = (HICON)LoadImage(hInstance, MAKEINTRESOURCE(1), IMAGE_ICON, 32, 32, 0);
wc.hIconSm = (HICON)LoadImage(hInstance, MAKEINTRESOURCE(1), IMAGE_ICON, 16, 16, 0);

不应将 16 或 32 硬编码为值。请改用GetSystemMetrics

wc.hIcon = (HICON)LoadImage(hInstance,
    MAKEINTRESOURCE(1), IMAGE_ICON,
    ::GetSystemMetrics(SM_CXICON),
    ::GetSystemMetrics(SM_CYICON), 0);
wc.hIconSm = (HICON)LoadImage(hInstance,
    MAKEINTRESOURCE(1), IMAGE_ICON,
    ::GetSystemMetrics(SM_CXSMICON),
    ::GetSystemMetrics(SM_CYSMICON), 0);