如何在wxWidget的框架中添加图片?

问题描述 投票:0回答:4

我对 wxWidget 很陌生。我想创建一个显示一些文本和图片的框架。我曾尝试在 internet/wsWidget 帮助上搜索,但无法找到解决方案。我知道有一些图像处理程序,例如 wxPNGHandler();但我不知道如何使用它。任何显示图像的简单代码都会非常有用。

    class MyFrame : public wxFrame
    {
public:
     MyFrame();
    }

MyFrame :: MyFrame() : wxFrame( NULL, wxID_ANY, wxT( "My wxWidget" ), wxDefaultPosition, wxSize( 290, 180 ), wxCAPTION |  wxCLOSE_BOX)
{
  wxPanel *panel = new wxPanel(this, wxID_ANY);
  wxString  text = wxT("Text Display\n");
//Add image to display
}
c++ widget wxwidgets
4个回答
2
投票

尝试了一天,终于成功了。

wxPNGHandler *handler = new wxPNGHandler;
wxImage::AddHandler(handler);
wxStaticBitmap *image;
image = new wxStaticBitmap( this, wxID_ANY, wxBitmap("Windows_7_logo.png", wxBITMAP_TYPE_PNG), wxPoint(50,100), wxSize(100, 500));

2
投票

您已经找到了

wxStaticBitmap
,但下次您有问题时,我的建议是在 wxWidgets 示例 中进行搜索。例如,在样本目录下的所有
png
文件中搜索
*.cpp
将会找到
samples/widgets/statbmp.cpp
,这将为您提供要使用的控件的名称。


1
投票

试试这个。

//创建一个临时的(堆栈分配的)wxPaintDC对象 wxPaintDC PaintDC(this);

//绘制背景图 PaintDC.DrawBitmap(wxBitmap(wxImage("image.png")),0,0);


0
投票

你可以这样做:

wxString imagePath = "path//to//your//image//example.png";
wxInitAllImageHandlers();
wxImage originalImage(imagePath, wxBITMAP_TYPE_ANY);

wxImage resizedImage = originalImage.Scale(300, 300); //resize
wxBitmap bitmap(resizedImage);
wxStaticBitmap* image;
image = new wxStaticBitmap(this, wxID_ANY, bitmap, wxPoint(220, 10), wxSize(300, 300));

这对我来说是工作

© www.soinside.com 2019 - 2024. All rights reserved.