我有一个动态创建的CWnd窗口,看起来标题栏区域和任务栏的图标是随机选择的。
要设置图标,请致电:
// Set the icon for this dialog. The framework does this automatically when the application's main window is not a dialog
m_hIcon = AfxGetApp()->LoadIconW(IDI_ICON);
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
与在MFC样本中一样,但似乎总是选择并缩小32x32图标,即使有其他更接近的匹配可用。标题栏中的图标实际上只有16x16,但它是从32x32版本创建的。
当32x32图标比16x16图标更详细时,这会导致混乱,因为缩小图标看起来像模糊。
CFrameWnd窗口似乎有某种不同的行为,因为它们似乎选择了更接近的匹配。
有没有人知道在标题栏中强制显示较小图标的解决方案,以便我可以为W7任务栏保留较大的图标?
答案 0 :(得分:2)
这是LoadIcon,而不是LoadIconW,这是偶然编译的。 MFC方法使用LoadIcon()API函数。从SDK文档:
LoadIcon只能加载一个图标 大小符合SM_CXICON和 SM_CYICON系统度量值。使用 LoadImage函数加载图标 其他尺寸。
请改用LoadImage(),以便传递适当的大小。进行两次调用以检索大型和小型版本。或者将小图标图像存储在另一个带有其他资源ID的图标中。