我尝试创建静态位图,但构造函数只接受wxGDIImages。 以下是FormBuilder中的代码:
wxStaticBitmap* tmtBitmap = new wxStaticBitmap( this, wxID_ANY, wxBitmap( wxT("directory"), wxBITMAP_TYPE_ANY ), wxDefaultPosition, wxDefaultSize, 0 );
有没有办法将wxBitmap转换为wxGDIImage?或者在给定目录的情况下创建一个wxGDIImage?
也许有另一种方法可以做到这一点。
感谢。
答案 0 :(得分:0)
wxStaticBitmap
在其构造函数(wx API-Doc)中接受wxBitmap
编译器生成的错误消息可能有点误导
我猜你看到这样的事情:
include/wx/msw/statbmp.h:80: note: candidates are: wxStaticBitmap::wxStaticBitmap(const wxStaticBitmap&)
include/wx/msw/statbmp.h:34: note: wxStaticBitmap::wxStaticBitmap(wxWindow*, wxWindowID, const wxGDIImage&, const wxPoint&, const wxSize&, long int, const wxString&)
include/wx/msw/statbmp.h:25: note: wxStaticBitmap::wxStaticBitmap()
由于它是唯一依赖于上下文的内容,因此您的this
指针似乎存在问题,要么您不在wxWindow
内部
或者你的编译器无法弄清楚静态类型。你可以使用这样的东西来验证:(不要在生产代码中这样做)
wxStaticBitmap* tmtBitmap = new wxStaticBitmap( (wxWindow*)NULL, wxID_ANY, wxBitmap( wxT("directory"), wxBITMAP_TYPE_ANY ), wxDefaultPosition, wxDefaultSize, 0 );
或
wxStaticBitmap* tmtBitmap = new wxStaticBitmap( (wxWindow*)this, wxID_ANY, wxBitmap( wxT("directory"), wxBITMAP_TYPE_ANY ), wxDefaultPosition, wxDefaultSize, 0 );