我正在尝试创建静态位图,但构造函数仅接受wxGDIImages。
这是FormBuilder中的代码:
wxStaticBitmap* tmtBitmap = new wxStaticBitmap( this, wxID_ANY, wxBitmap( wxT("directory"), wxBITMAP_TYPE_ANY ), wxDefaultPosition, wxDefaultSize, 0 );
有什么方法可以将wxBitmap转换为wxGDIImage吗?还是创建给定目录的wxGDIImage?
也许还有另一种方法可以做到这一点。
谢谢。
最佳答案
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 );
关于c++ - wxStaticBitmap构造函数使用wxGDIImage而不是wxBitmap,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14821969/