我有一个动态创建的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任务栏中?
发布于 2010-12-22 18:09:04
这是LoadIcon,不是LoadIconW,这是偶然编译的。MFC方法使用LoadIcon() API函数。SDK文档中:
LoadIcon只能加载大小符合SM_CXICON和SM_CYICON系统指标值的图标。使用LoadImage函数加载其他大小的图标。
请改用LoadImage(),以便可以传递适当的大小。进行两次调用以检索一个大版本和一个小版本。或者将小图标图像存储在具有另一个资源ID的另一个图标中。
https://stackoverflow.com/questions/4507649
复制相似问题