【问题标题】:How to change icon of: taskbar, in the top left corner, icon when Alt-Tab is pressed, of my .exe如何更改图标:任务栏,左上角,按下 Alt-Tab 时的图标,我的 .exe
【发布时间】:2015-04-13 08:15:54
【问题描述】:

平台:Windows 7

IDE:VS2013

语言:C++

Windows 类:WinAPI

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

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

我需要:将任务栏的图标更改为 Icon.png,对 exe 左上角的图标做同样的事情,并更改按下 alt+tab 时显示的图标。

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

非常感谢任何帮助。

PS 我尝试了其他人在此处发布的内容,但它要么不起作用,要么说明不清楚,因此我要求提供具体信息。

【问题讨论】:

  • 你为什么认为这是可能的?你打算在哪里获得任务切换器的钩子?你有证据证明这是可以做到的吗?
  • 其实我对你的要求感到困惑。您想在程序运行时更改窗口图标以响应任务切换吗?如果是这样,为什么?如果没有,您尝试了哪些方法,为什么没有成功?
  • 大卫。好吧,不,我没有证据表明可以找到任务切换器挂钩。
  • Andlabs,我想在创建窗口时更改图标,而不是自动加载的默认微软图标。为什么?为一场比赛。我尝试了什么?我试图创建一个 .rc 文件并以某种方式获取其中引用的图标,我还尝试将 LoadIcon 与 png 一起使用。
  • 你能展示你的代码吗?也许编辑你的问题,让它听起来不像你在尝试做前者,因为这就是大卫的想法。

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


【解决方案1】:

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

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 并根据它自定义你的参数。

【讨论】:

  • 只要它确实返回一个图标,它就不是hacky。 MSDN has an example that uses LoadImage().
  • LoadIcon 不会为我加载它,老实说,我很高兴它与 loadImage 一起工作以进一步调查。上面的网站是我在这里发帖之前的参考。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-03-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-31
相关资源
最近更新 更多