CWBButton - 可调整大小的位图按钮






4.30/5 (7投票s)
2000年5月29日

159110

6930
CWBButton 是一个可调整大小的位图按钮,类似于 GTK+ 或 Window Blinds。
引言
CWBButton 是一个类似于 'WindowBlinds' 的可调整大小的图像按钮,它源自 CButton。在 MFC 中,您可以使用名为 CBitmapButton
的类,但那还不够。按钮的大小就是位图的大小,并且您无法通过调用 API SetWindowText()
来放置文本。我想要像 GTK+ 或 WindowBlinds 那样的真正的位图按钮。因此,我尝试参考 WindowBlinds 创建一个真正的位图按钮。
如何使用
使用 CWBButton 很简单。
- 将文件添加到您的项目中:
WBButton.h, WBButton.cpp, AutoFont.h, AutoFont.cpp
- 到对话框的头文件中:
#include "WBButton.h"
- 在您的对话框上创建一个按钮,并确保打开“所有者绘制”属性。
- 在对话框类中:将
CButton m_btn1
更改为CWBButton m_btn1
- 在事件处理程序
OnInitDialog()
中初始化CWBButton
,如下所示m_btn1.LoadBitmaps ( IDB_BITMAP1, // Bitmap resource ID 5, // Num of Bitmaps 15, // TopHeight 6, // BottomHeight 15, // LeftWidth 8 // RightWidth );
为了正确初始化,您需要了解 WindowBlinds 的实现方式。每个矩形由 LeftWidth、RightWidth、TopHeight 和 BottomHeight 引导,并且不拉伸。其他部分会根据按钮的大小进行拉伸。因此,您可以获得自然的按钮图像。正确设置参数可能比较困难,但您可以参考 WindowBlinds 的初始化文件,其名称为 '*.uis',位于 '[Buttons]' 部分。
注释
- 您加载的位图应至少分为四个部分。第一个是“正常”状态,第二个是“选择”状态,第三个是“禁用”状态,第四个是“焦点”状态。
- 要使按钮透明,位图的背景颜色应为 RGB(255,0,255),您也可以通过调用函数
SetBackColor()
来更改透明颜色
问题
我在日语版 VC6.0 和 Windows 上测试了此源代码。其他语言环境中可能会出现问题。