如何在对话框左下角显示 16 x 16 的 IDI_INFORMATION 图标?

问题描述 投票:0回答:2

当您使用

CTaskDialog
时,您可以设置页脚图标,大小为 16 x 16。我想在我自己的对话框中执行类似的操作:

目前我自己的对话框底部有一个静态资源。


我知道我可以像这样加载信息图标:

HICON hInfo = LoadStandardIcon(IDI_INFORMATION);
  1. 我们如何将其加载为 16 x 16?
  2. 我们如何将其显示在对话框的左侧?
visual-c++ mfc dialog icons
2个回答
3
投票

如果您(希望)不需要支持 Windows XP,您可以使用

LoadIconWithScaleDown

例如:

HICON hicon;
HRESULT hr = LoadIconWithScaleDown(NULL, (PCWSTR)IDI_INFORMATION,
             GetSystemMetrics(SM_CXICON) / 2, GetSystemMetrics(SM_CYICON) / 2,  &hicon);
...

这为您提供了加载现代版本图标而不是旧的丑陋图标的额外好处。另请参阅这篇文章


2
投票

您可以使用

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)));

我没有测试代码,但应该可以工作。

© www.soinside.com 2019 - 2024. All rights reserved.