gpt4 book ai didi

c++ - 在 wxWidgets 中显示静态图像?

转载 作者:太空狗 更新时间:2023-10-29 23:10:00 25 4
gpt4 key购买 nike

我已经好几天尝试在 wxWidgets 对话框中显示内存中的 BMP 图像,但我的尝试都没有成功。

首先,我尝试在我的对话框中创建一个 wxStaticBitmap 控件:

// in class declaration inside header file
wxStaticBitmap *ibitmap;

// in wxDialog constructor
// MyLogo is an array of `unsigned char`
// contains the bitmap file (Yes, the bitmap file, with BMP header)
ibitmap = new wxStaticBitmap(mainPanel, 4000, wxBitmap(MyLogo, wxBITMAP_TYPE_BMP, 200, 62), wxPoint(10, 10), wxSize(200, 62));

我没有出错,但是图片没有出现。

其次,我尝试在对话框的 EVT_PAINT 中绘制图像:

// in the class declaration inside header file
wxBitmap *ibitmap;

// in the events declaration
EVT_PAINT(OnPaint)

// in wxDialog constructor
ibitmap = new wxBitmap(MyLogo, wxBITMAP_TYPE_BMP, 200, 62);

// event method implementation
void MyDialog::OnPaint(wxPaintEvent &event)
{
wxPaintDC dc(this);
dc.DrawBitmap(*ibitmap, 10, 10);
}

现在我收到了这个调试警报: http://img266.imageshack.us/img266/9512/wxerror.jpg

调试器停在这一行:

// dc.h Ln 271
{ DoDrawBitmap(bmp, x, y, useMask); }

有人指点一下吗?

最佳答案

您的位图加载不正确。根据wxWidgets docs您要使用的 wxBitmap 构造函数具有以下签名:

 wxBitmap(const char bits[], int width, int height, int depth=1)

所以你最终应该得到这样的东西:

wxBitmap(MyLogo, 200, 62, 3)

假设一个 RGB 位图。

关于c++ - 在 wxWidgets 中显示静态图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2863086/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com