c++ - 显示图像 Sprite 中的特定图像

标签 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 当时只显示 一个 关闭方形按钮(这样我就可以将鼠标悬停/单击它的事件处理程序)。设置它的大小在这里不起作用,这不是我想要的。

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

最佳答案

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

关于c++ - 显示图像 Sprite 中的特定图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30607375/

相关文章:

jquery - 对齐分割图像的两半 - 响应式

c++ - 读取结构 vector 并将其写入文件

c++ - 从另一个线程恢复 asio 协程

c++ - 两个应用程序可以通过 UDP 数据包进行通信吗?

python - 吉普错误!堆栈错误 : Can't find Python executable

c++ - 如何在 Windows 7 x64 下使用 C++ 程序选择左或右扬声器?

android - Fresco 库问题

c++ - IDD_ABOUT : undeclared identifier

mysql - 有没有办法将 DB 用户密码传递到命令行工具 mysqladmin 中?

css - 在隐藏的溢出 div 标签中缩放和居中对齐 <img>