1

我正在尝试创建一个静态位图,但构造函数只接受 wxGDIImages。这是来自 FormBuilder 的代码:

wxStaticBitmap* tmtBitmap = new wxStaticBitmap( this, wxID_ANY, wxBitmap( wxT("directory"), wxBITMAP_TYPE_ANY ), wxDefaultPosition, wxDefaultSize, 0 );

有没有办法将 wxBitmap 转换为 wxGDIImage?或者在给定目录的情况下创建一个 wxGDIImage?

也许还有另一种方法可以做到这一点。

谢谢。

4

1 回答 1

1

wxStaticBitmap确实wxBitmap在其构造函数中接受(wx API-Doc
编译器产生的错误消息可能有点误导我猜你会看到这样的东西:

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,要么您不在“内部” a ,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 );
于 2013-02-12T11:22:11.440 回答