如何在对话框的左下角以 16 x 16 的尺寸显示 IDI_INFORMATION 图标?
How can I display the IDI_INFORMATION icon at 16 x 16 in the lower left of my dialog?
当你使用 CTaskDialog
时,你可以设置页脚图标,它是 16 x 16。我想在我自己的对话框中做类似的事情:
目前我自己的对话框底部有一个静态资源。
我知道我可以这样加载信息图标:
HICON hInfo = LoadStandardIcon(IDI_INFORMATION);
- 我们如何将其加载为 16 x 16?
- 我们如何在对话框的左侧显示它?
如果您(希望)不需要支持 Windows XP,您可以使用 LoadIconWithScaleDown
例如:
HICON hicon;
HRESULT hr = LoadIconWithScaleDown(NULL, (PCWSTR)IDI_INFORMATION,
GetSystemMetrics(SM_CXICON) / 2, GetSystemMetrics(SM_CYICON) / 2, &hicon);
...
这为您提供了额外的好处,即加载现代版本的图标而不是旧的丑陋图标。另见 。
您可以使用 Picture Control
来做到这一点,并在需要时放置它。作为代码,您可以这样做:
CStatic myicon;
myicon.Attach(GetDlgItem(ID_STATIC_ICON));
myicon.SetIcon(static_cast<HICON>(::LoadImage(nullptr, MAKEINTRESOURCE(IDI_MYICON), IMAGE_ICON, 16, 16, 0)));
我没有测试代码,但应该可以。
当你使用 CTaskDialog
时,你可以设置页脚图标,它是 16 x 16。我想在我自己的对话框中做类似的事情:
目前我自己的对话框底部有一个静态资源。
我知道我可以这样加载信息图标:
HICON hInfo = LoadStandardIcon(IDI_INFORMATION);
- 我们如何将其加载为 16 x 16?
- 我们如何在对话框的左侧显示它?
如果您(希望)不需要支持 Windows XP,您可以使用 LoadIconWithScaleDown
例如:
HICON hicon;
HRESULT hr = LoadIconWithScaleDown(NULL, (PCWSTR)IDI_INFORMATION,
GetSystemMetrics(SM_CXICON) / 2, GetSystemMetrics(SM_CYICON) / 2, &hicon);
...
这为您提供了额外的好处,即加载现代版本的图标而不是旧的丑陋图标。另见
您可以使用 Picture Control
来做到这一点,并在需要时放置它。作为代码,您可以这样做:
CStatic myicon;
myicon.Attach(GetDlgItem(ID_STATIC_ICON));
myicon.SetIcon(static_cast<HICON>(::LoadImage(nullptr, MAKEINTRESOURCE(IDI_MYICON), IMAGE_ICON, 16, 16, 0)));
我没有测试代码,但应该可以。