也可以参考https://blog.youkuaiyun.com/sq8706/article/details/118342706这篇文章。
--------------------------------------------------------------------------------------------------------------------------------
simple.h文件
class Simple:public wxFrame
{
public:
Simple(const wxString& title);
};
simple.cpp文件
#include "web.xpm"//这个是xpm文件的名称
Simple::Simple(const wxString& title)
:wxFrame(NULL,wxID_ANY,title,wxDefaultPosition,wxSize(200,150))
{
SetIcon(wxIcon(web_xpm));//这个是xpm文件里static char *后面的变量名称
//SetIcon(wxIcon("a.ico",wxBITMAP_TYPE_ICO));//如果使用ico文件,这样用也是正确的。
//wxInitAllImageHandlers();//如果不用wxImage::AddHandler(...);用这句也行,但不知为啥一开始不好用。
//PNG图标需要增加AddHandler
//wxImage::AddHandler(new wxPNGHandler);
//SetIcon(wxIcon("accerciser.png",wxBITMAP_TYPE_PNG));
//不使用#include "web.xpm",则使用以下2句
wxImage::AddHandler(new wxXPMHandler);
SetIcon(wxIcon("web.xpm",wxBITMAP_TYPE_XPM));
Centre();
}
注意
1.官方文档里说,xpm文件里的图标只能是16 或是 32的大小。
2.如果出现warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]|这个警告,你可以把xpm文件里的static char *name_xpm改成static const char *name_xpm就行了。
其它问题
网上有说
SetIcon(wxIcon(wxT("web.xpm")));//
为啥我的这么做不行呢?
有可以告知的么?
没有知道的么?俺自己