wxWidgets设置wxFrame图标

也可以参考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")));//

为啥我的这么做不行呢?

有可以告知的么?

没有知道的么?俺自己

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值