从图像精灵中显示某些图像

时间:2015-06-02 22:01:11

标签: c++ windows image wxwidgets

我写了一个类,负责处理图像按钮:

#include "ImageButton.h"

ImageButton::ImageButton()
{
    // main constructor
}

ImageButton::ImageButton(wxWindow* parent, const wxString& buttonPath)
    : wxStaticBitmap(parent, wxID_ANY, wxBitmap(buttonPath, wxBITMAP_TYPE_PNG), wxPoint(0, 0), wxDefaultSize)
{
    Refresh();
}

ImageButton::~ImageButton()
{
    // ...
}

这是非常开始和基本的。但是,我刚刚发现可能无法调整图像大小(不改变图像尺寸)。

这是图像的样子:

enter image description here

我想在这里实现的是告诉wxStaticBitmap当时只显示一个关闭方形按钮(这样我就可以制作一个鼠标悬停/点击事件处理程序它)。设置它的大小在这里不起作用,那不是我想要的。

在这种情况下,是否可以在特定尺寸裁剪图像?

1 个答案:

答案 0 :(得分:2)

您可以从中创建两个图像。其中一种方法是使用wxImage::Resize(首先制作原始图像的副本)。第二种方法是使用wxBitmap::GetSubBitmap(你需要将wxImage转换为wxBitmap - 这可以通过简单的赋值来完成)。这真的取决于你想要达到的目标以及对你来说更方便的东西。