显示图像精灵中的特定图像

Show certain image from image sprite

我写了一个 class 来负责图像按钮的处理:

#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()
{
    // ...
}

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

图片是这样的:

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

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

您可以从中创建两个图像。其中一种方法是使用 wxImage::Resize(首先复制原始图像)。第二种方法是使用 wxBitmap::GetSubBitmap (您需要将 wxImage 转换为 wxBitmap - 这可以通过简单的赋值来完成)。这真的取决于你想要实现什么,什么对你来说更方便。