CWBButton - Resizable Bitmap Button






4.30/5 (7 votes)
May 29, 2000

158502

6930
CWBButton is a resizable bitmap button like GTK+ or Window Blinds.
Introduction
CWBButton is a 'WindowBlinds' like resizable
image button derived from a CButton. In MFC, You can use the class called CBitmapButton
, but
that's not enough. The size of button is the size of the bitmap, and you can't put a text by calling the
API SetWindowText()
. I wanted REAL Bitmap Button like GTK+ or WindowBlinds. So I try to create
a REAL Bitmap Button referring WindowBlinds.
How to Use
Using CWBButton is simple.
- Add Files to your project.
WBButton.h, WBButton.cpp, AutoFont.h, AutoFont.cpp
- To the Dialog's header file:
#include "WBButton.h"
- Create a button on your dialog, and make sure you turn on the "Owner Draw" property.
- Inside the Dialog class:
CButton m_btn1
toCWBButton m_btn1
- Initialize the
CWBButton
in the event handlerOnInitDialog()
as described below:m_btn1.LoadBitmaps ( IDB_BITMAP1, // Bitmap resource ID 5, // Num of Bitmaps 15, // TopHeight 6, // BottomHeight 15, // LeftWidth 8 // RightWidth );
To initialize correctly, you know how to be implemented in the WindowBlinds. Each rectangle lead by LeftWidth, RightWidth, TopHeight, and BottomHeight is static, and not stretched. The others are stretched by the size of button. So you can get natural button images. It may be difficult to set the parameters correctly, but you can refer the Initialize file of WindowBlinds, which name is '*.uis', on the section '[Buttons]'.
Notes
- The bitmap you load should be separate at least four parts. The First is 'Normal' state, the second is 'Select' state, the Third is 'Disable' state, and the fourth is 'Focus' state.
- To transparent the button, the bitmap background color should be RGB(255,0,255), also you can
change the transparent color by calling the function
SetBackColor()
Problems
I tested this source on the Japanese version VC6.0 and Windows. Problems may occur on other language environments.