繁体   English   中英

在Visual C ++中设置小图标和大图标

[英]Setting small and large icon in Visual C++

我正在将旧的(Visual Studio 6.0)应用程序移植到Visual Studio 2012以添加一些增强功能。 资源视图中的应用程序图标显然有2个版本的图标,32x32 4位位图和16x16 4位位图。

在主AppDlg.cpp中有2次调用SetIcon() ,如下所示(默认情况下由MFC应用程序向导创建):

SetIcon(m_hIcon, TRUE);         // Set big icon
SetIcon(m_hIcon, FALSE);        // Set small icon 

但是,应用程序对话框窗口左上角显示的图标较大,缩小为16x16而不是小图标。 它也发生在系统托盘中显示的图标上。

在Windows资源管理器(详细视图/列表视图)中查看时,它似乎使用正确的小文件作为可执行文件。 所以它在某些情况下选择小的。

如何选择对话框和系统托盘左上角的较小的16x16图标?

已知微软的bug。 这个讨论。 (如果你不想阅读,只需注释掉SetIcon(m_hIcon,FALSE)行就可以了)。 请注意,SetIcon仅设置对话框标题栏上的图标(小图标)以及使用Alt-tab(大图标)时

您在Windows资源管理器中看到的图标是主应用程序图标(您的rc文件中ID最低的图标)。 它与主对话框的SetIcon()方法无关

系统托盘中的图标完全不同。 通常情况下,您可以使用Shell_NotifyIcon API来设置图标,但我敢打赌,您的项目将有一个帮助程序类,它设置了CSystemTray的图标,而Chris Maunder是许多程序员使用的流行程序。 只需在程序中搜索Shell_NotifyIcon,即可准确找出系统托盘图标所使用的资源

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM