c++ - wxStaticBitmap构造函数使用wxGDIImage而不是wxBitmap

标签 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?

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

谢谢。

最佳答案

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/

相关文章:

visual-c++ - 如何将 float 打印到 Visual C++ 消息框?

android - 为什么文档样本除以2来计算位图加载的inSampleSize?

android - 保存 Android ImageView 位图

c# - 在 using 语句中返回后的位图 ArgumentException

C++ 将文本文件读入数组

c++ - 如何打印给定字符串的所有可能子字符串?

c++ - 如果在 if 语句中实现,函数会存储值吗?

c++ - 重载调用不明确 : one-pair inline map as constructor argument

c++ - 禁用特定 MSVC 版本的优化

c++ - LNK2001:为 x64 平台构建时无法解析的外部符号