65.9K
CodeProject 正在变化。 阅读更多。
Home

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

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.30/5 (7投票s)

2000年5月29日

viewsIcon

159110

downloadIcon

6930

CWBButton 是一个可调整大小的位图按钮,类似于 GTK+ 或 Window Blinds。

  • 下载源代码 - 8 KB
  • 下载演示项目 - 37 Kb
  • Sample Image - CWBButton.jpg

    引言

    CWBButton 是一个类似于 'WindowBlinds' 的可调整大小的图像按钮,它源自 CButton。在 MFC 中,您可以使用名为 CBitmapButton 的类,但那还不够。按钮的大小就是位图的大小,并且您无法通过调用 API SetWindowText() 来放置文本。我想要像 GTK+ 或 WindowBlinds 那样的真正的位图按钮。因此,我尝试参考 WindowBlinds 创建一个真正的位图按钮。


    如何使用

    使用 CWBButton 很简单。

    1. 将文件添加到您的项目中:WBButton.h, WBButton.cpp, AutoFont.h, AutoFont.cpp
    2. 到对话框的头文件中:#include "WBButton.h"
    3. 在您的对话框上创建一个按钮,并确保打开“所有者绘制”属性。
    4. 在对话框类中:将 CButton m_btn1 更改为 CWBButton m_btn1
    5. 在事件处理程序 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]' 部分。


    注释

    1. 您加载的位图应至少分为四个部分。第一个是“正常”状态,第二个是“选择”状态,第三个是“禁用”状态,第四个是“焦点”状态。
    2. 要使按钮透明,位图的背景颜色应为 RGB(255,0,255),您也可以通过调用函数 SetBackColor() 来更改透明颜色

    问题

    我在日语版 VC6.0 和 Windows 上测试了此源代码。其他语言环境中可能会出现问题。

    © . All rights reserved.