我知道在窗口标题栏或任务栏中使用了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);

关于c++ - WNDCLASSEX结构中的hIcon和hIconSm应该使用什么值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27348632/

10-13 06:52