Click here to Skip to main content
15,867,453 members
Articles / Desktop Programming / MFC
Article

CButton with icon

Rate me:
Please Sign up or sign in to vote.
4.52/5 (24 votes)
12 Aug 2002CPOL 252.4K   7.3K   59   34
A small class to create a button with an icon on it

Sample Image - iconbutton.jpg

Introduction

The idea was to have a small piece of code which makes it easy to create a button with an icon on it. I saw a lot of great code, but it was not exactly what I want. So I decided to create my own CIconButton-class. This class makes it easy to set an icon on a button.

  1. Simply add a button to your dialog.
  2. Set the button style "ownerdraw", otherwise the code doesn't work.
  3. Then generate a member variable with the class-wizard.
  4. Change the class name from CButton to CIconButton (make sure you have include the "iconbutton.h" file and add the "iconbutton.cpp" file to your project)
  5. Create an icon in the resource manager.
  6. Set the icon to the button, set the font, the font size, etc

Last version

It´s possible to give the button a tool tip text. You can do this by calling the function SetTipText ( "tooltip-text" );

For more details look in the demo-project

Methods

void SetIconID ( const UINT nID )	
void SetTextColor ( const COLORREF color )	
void SetItalic ( bool bVal = true )
void SetUnderline ( bool bVal = true )	
void SetStrikeOut ( bool bVal = true )	
void SetFaceName ( const CString &sVal )
void SetWeight ( const int nVal )	
void SetHeight ( const int nVal)
void SetWidth ( const int nVal)	
void SetIconSize ( const int x, const int y )	
void SetIconRight ( bool bVal = true ) 
void SetTipText ( const CString &sTxt )  new

void Disable ( void );
void Enable ( void );

Note

I think this is the last enhancement, otherwise the "small piece of code" is going to get a big hunk ;-))

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Software Developer www.rowa.de
Germany Germany
Working as software engineer since 2001. I started with c, c++ came up to c# and wpf today.

Comments and Discussions

 
QuestionAbout Font Pin
NANA@12318-Mar-13 23:44
NANA@12318-Mar-13 23:44 
QuestionAwsome Work Pin
AhmedShinwari5-Feb-13 16:06
AhmedShinwari5-Feb-13 16:06 
QuestionCompile with VS2010 Pin
merano24-Oct-11 10:15
merano24-Oct-11 10:15 
AnswerRe: Compile with VS2010 Pin
Alexander Kloep24-Oct-11 19:56
Alexander Kloep24-Oct-11 19:56 
AnswerRe: Compile with VS2010 Pin
AHTOXA5-Jun-12 22:56
AHTOXA5-Jun-12 22:56 
GeneralThanks Pin
Member 108540218-Sep-10 9:34
Member 108540218-Sep-10 9:34 
QuestionCan I use this code in commercial program Pin
hp15619-Sep-09 16:57
hp15619-Sep-09 16:57 
AnswerRe: Can I use this code in commercial program [modified] Pin
Alexander Kloep20-Sep-09 4:42
Alexander Kloep20-Sep-09 4:42 
GeneralThanks Pin
nobihai26-Oct-08 4:25
nobihai26-Oct-08 4:25 
GeneralRe: Thanks Pin
Alexander Kloep26-Oct-08 21:23
Alexander Kloep26-Oct-08 21:23 
GeneralChanging ToolTips Pin
RedFraggle10-Jun-06 12:03
RedFraggle10-Jun-06 12:03 
GeneralRe: Changing ToolTips Pin
Alexander Kloep11-Jun-06 20:44
Alexander Kloep11-Jun-06 20:44 
Thank you for your compliment and thanks for this enhancement.

Greets Alex. Big Grin | :-D
GeneralNice one Pin
Jaiju jacob9-Sep-05 0:14
Jaiju jacob9-Sep-05 0:14 
Questionhow to make colorful button such as red ,blue not gray Pin
vividtang3-Apr-04 12:59
vividtang3-Apr-04 12:59 
AnswerRe: how to make colorful button such as red ,blue not gray Pin
merano24-Oct-11 10:39
merano24-Oct-11 10:39 
GeneralQ Pin
Member 64882815-Jan-04 1:43
Member 64882815-Jan-04 1:43 
GeneralNice, but click speed is poor Pin
User 2694216-Nov-03 22:55
professionalUser 2694216-Nov-03 22:55 
GeneralSize of class Pin
Lapompe25-Jun-03 15:00
Lapompe25-Jun-03 15:00 
QuestionHasn't this been done before? Pin
Emcee Lam20-Dec-02 14:33
Emcee Lam20-Dec-02 14:33 
AnswerRe: Hasn't this been done before? Pin
Nish Nishant20-Dec-02 15:11
sitebuilderNish Nishant20-Dec-02 15:11 
GeneralRe: Hasn't this been done before? Pin
Emcee Lam20-Dec-02 16:35
Emcee Lam20-Dec-02 16:35 
GeneralRe: Hasn't this been done before? Pin
Rubyist8-Aug-07 21:51
Rubyist8-Aug-07 21:51 
GeneralRe: Hasn't this been done before? Pin
Emcee Lam13-Aug-07 16:36
Emcee Lam13-Aug-07 16:36 
Generalgood Pin
yary19-Dec-02 1:48
yary19-Dec-02 1:48 
GeneralNice butt i got a problem Pin
BRWX19-Nov-02 23:18
BRWX19-Nov-02 23:18 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.