在wxMSW中设置窗口的左上角图标

时间:2011-07-27 23:23:09

标签: windows icons mingw wxwidgets

我正在使用wxWidgets(2.9分支)开展一个项目。我正在使用gcc和makefile - 我在Visual Studio的这笔交易中发现的大多数问题。

问题是,我用IcoFX创建了一个图标,它包含几种不同大小的图标,包括应该显示在窗口角落的16x16图标。该图标确实显示在Windows 7任务栏中,但不显示在窗口的一角或Alt + Tab菜单中。

我的资源文件如下所示:

#include "wx/msw/wx.rc"
1 ICON "images/icon-win.ico"

无论我把它作为图标的标识符(试过1,0,字符串,wx ***),它都不会改变任何东西。

我使用windres将资源文件编译为COFF格式,然后将其与最终的可执行文件链接。

我也尝试过wxFrame :: SetIcon,它也没用。

设置窗口的图标有诀窍吗?我已经看到了几种涉及Windows API的方法,但如果我不需要,我宁愿不去那里。我认为它应该在你把它放在资源文件中时自动显示。

3 个答案:

答案 0 :(得分:2)

将此行添加到资源文件中:

frame_icon ICON "images/icon-win.ico"

将此行添加到帧构造函数

SetIcon(wxICON(frame_icon));

答案 1 :(得分:1)

试试这个

frame->SetIcon(wxIcon(wxT("icon.ico"), wxBITMAP_TYPE_ICO));

答案 2 :(得分:0)

您发现将图标放在资源文件中意味着它会显示在任务栏上并显示为可执行图标。要将其设置为框架图标,您需要执行以下操作:

frame->SetIcon(wxICON(1));