如何更改图标:任务栏,左上角,按下Alt-Tab时的图标,我的.exe

时间:2015-02-12 14:31:29

标签: c++ winapi visual-studio-2013 windows-7

平台:Windows 7

IDE:VS2013

语言:C ++

Windows类:WinAPI

我有一个自定义图片:Icon.png。

我还有一个来自msdn示例代码的Windows类来创建一个基本的Win32窗口。 它有两个我的windows类结构的hIcon和hIconSm,我不确定它们对应的是什么,但它们都可能与图标有关。

我需要:将任务栏的图标更改为Icon.png,对exe左上角的图标执行相同操作,并更改按下alt + tab时显示的图标。

这意味着我需要知道我改变了哪些变量,使用了哪些函数,以及它的参数代表什么。此外,如果需要在VS中单击或创建其他文件,我还需要有关如何执行此操作的说明。

非常感谢任何帮助。

PS我尝试了其他人在这里发布的东西,但它要么不起作用,要么说明不清楚,因此我要求具体细节。

1 个答案:

答案 0 :(得分:0)

所以,我找到了自己的答案。

A)我可以干预资源加载(我做了,并且在将其链接到LoadIcon函数时感到沮丧和失败。

B)第二种方式:使用LoadImage并将返回值转换为HICON(显然hacky,但它适用于我试图改变的所有图标!!!!!所以,问题解决了哈哈。 下面是我在项目中使用的伪代码。

   windowclass.hIcon = (HICON) LoadImage( // returns a HANDLE so we have to cast to HICON
   NULL,             // hInstance must be NULL when loading from a file
   "iconfile.ico",   // the icon file name
   IMAGE_ICON,       // specifies that the file is an icon
   0,                // width of the image (we'll specify default later on)
   0,                // height of the image
   LR_LOADFROMFILE|  // we want to load a file (as opposed to a resource)
   LR_DEFAULTSIZE|   // default metrics based on the type (IMAGE_ICON, 32x32)
   LR_SHARED         // let the system release the handle when it's no longer used
   );

因此,如果您想要上面的其他自定义,我建议您使用MSDN定义LoadImage并根据它自定义您的参数。