ICON "",IDC_ICON_INFORMATION,18,70,21,20
我按如下方式处理WM_INITDIALOG消息:
HICON aIcn = LoadIcon(NULL, IDI_INFORMATION);
SendDlgItemMessage(m_hWnd, IDC_ICON_INFORMATION, STM_SETICON, (WPARAM) aIcn, 0);
但是,当我切换到更高的DPI时(通过右键单击
桌面
,选择
屏幕分辨率
,然后单击
使或其他物品变大或变小
)图标不缩放!由于其他所有内容都可以很好地缩放,因此图标在视觉上看起来比相邻文本小得多。我预计144 DPI(150%)的图标尺寸将为48x48像素。我确实通过XML清单将我的应用程序声明为DPI感知。
最糟糕的是,当我使用自己定制的图标(也来自RC文件)时,一切都可以完美地伸缩。而且
MessageBox
函数调用
MB_ICONINFORMATION
标志也会显示图标的缩放版本。
考虑到这些想法,我假设如下:
-
静态控制
SS_ICON
样式可以显示图标的缩放版本。
-
包含标准信息图标的图标资源具有图标的缩放版本(48x48)。
那我做错什么了?