wxStaticBitmap构造函数采用wxGDIImage而不是wxBitmap

时间:2013-02-11 22:17:52

标签: c++ visual-c++ bitmap wxwidgets wxformbuilder

我尝试创建静态位图,但构造函数只接受wxGDIImages。 以下是FormBuilder中的代码:

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

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

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

感谢。

1 个答案:

答案 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 );