我想定义一个Win32窗口的应用程序图标,例如通过调用SetClassLong
与GCL_HICON
并传递一个图标的句柄(请参阅MSDN上的SetClassLong Function)。如何在窗口上设置HICON(多种尺寸的.ICO)?
这很好,但我还没有想出我应该如何加载一个图标(从ICO文件),以保持所有可用的大小(例如16x16,32x32,48x48和全尺寸的PNG图标)。当我通过将图标文件加载到内存中以获得HICON
时,我必须指定我想要的尺寸(请参阅我的reply to a related question)。
我的ICO文件包含一个小尺寸的图像,它应该被用作窗口图标(标题栏的左上角),并且设计得非常清晰,但是也应该显示在Alt-标签对话框,但是......
加载16x16的图标显示在标题栏中适当的图标,但 - 当然 - 它的一个丑陋的拉伸版本时,我使用Alt-Tab。而在任务栏中显示的人也不是很漂亮。
加载48x48图标显示一个很好的图标,当我按Alt-Tab时,但标题栏中显示的图标模糊不清,因为它是48x48图标的缩小版。
有什么办法告诉Windows我的Windows有一个多尺寸的图标?有没有我错过的一些明显的API?
目前,我无法使SetClassLong在我的WinForms应用程序上按预期工作。默认的WinForms图标获胜;当我用Alt-Tab时,我会看到我的图标,但是默认的WinForms图标被绘制在我的头顶上。奇怪。如果我不能自己弄清楚,我会在堆栈溢出上发布另一个问题。 – 2010-02-12 16:18:46
其他问题在这里,如果你想知道:http://stackoverflow.com/questions/2266479 – 2010-02-17 13:43:33