Click here to Skip to main content
Click here to Skip to main content
Go to top


, 19 Jul 2005
Rate this:
Please Sign up or sign in to vote.
A CButton derived class which gives you the ability to use hyperlink buttons in your application.

Sample Image - CHButton.jpg


The idea was simple, I needed to use simple hyperlink buttons in my application. I searched for them on the net and could not find any, so I decided to write down my own class of Hyperlink buttons. CHButton is a CButton derived class and its objects are simple buttons, with the user interface of a Hyperlink control. The only thing you'll have to do is to attach a cursor to it, which you can do using the function:

  • void SetCursor(BOOL HCURSOR m_Cursor);

    Sets cursor of the Hyperlink button.

This class also has the following public methods:

  • void SetUnderline(UINT nUnderline);

    Sets the chosen Underline state to the button. nUnderline can have the following values:

    • HS_ALWAYS - Displays the underline always.
    • HS_HOVER - Displays the underline when the mouse is over the button.
    • HS_NONE - Removes the underline if exists.
  • void SetHoverTextColor(COLORREF clrTextColor,BOOL bShowColor =TRUE);

    Sets the Hyperlink button text color when the mouse is over the button.

  • void SetTextColor(COLORREF clrColor)

    Sets the text color of the Hyperlink button.

  • void SetIcon(HICON Icon)

    Sets the specified icon to the button.

  • void SetToolTip(LPCSTR strText, BOOL bActive = TRUE);

    Sets the ToolTip text for the Hyperlink button.

How to Use it

  • Add "HButton.cpp" and "HButton.h" files to your project.
  • In your dialog's header file, write: #include "HButton.h".
  • Create a button on your dialog and in the Properties tab set the "owner draw" property.
  • Add a CButton m_btn variable to the just created button and in your dialog's header file rename it to CHButton m_btn.
  • Compile and enjoy it Smile | :)


  • Version 1.3 (July 10, 2005)
    • Added SetIcon(..) function.
  • Version 1.2 (July 10, 2005)
    • Added Hover Underline feature.
  • Version 1.1 (July 08, 2005)
    • Posted on CodeProject.
  • Version 1.1 (July 06,2005)
    • Added Tooltip support.
  • Version 1.00 (July 05, 2005)
    • Initial release.


This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here


About the Author


Other Other
No Biography provided

Comments and Discussions

GeneralgHi mOnO. Pinmemberdavid bagaturia17-Sep-07 20:07 
Generalmono Pinmemberbabaduli29-Nov-06 16:13 
GeneralNice PinmemberLevan Midodashvili13-Oct-05 13:01 
GeneralI don't see the point... PinmemberDouglas R. Keesler14-Jul-05 11:57 
General[Message Deleted] PinmemberGiorgi Moniava14-Jul-05 23:12 
GeneralRe: I don't see the point... PinmemberDouglas R. Keesler15-Jul-05 15:32 
GeneralRe: I don't see the point... PinmemberGiorgi Moniava15-Jul-05 22:52 
GeneralSearch PinmemberPJ Arends8-Jul-05 6:20 
GeneralRe: Search PinmemberGiorgi Moniava8-Jul-05 23:00 
GeneralRe: Search PinmemberDouglas R. Keesler15-Jul-05 19:45 

Giorgi Moniava wrote:
These are all simple CStatic derived Hyperlink controls who only take you to specified URL-s.

Which is by definition what a hyperlink is -- a control which takes you to a specified URL.

Giorgi Moniava wrote:
CHButton is a CButton derived class which is a simple button , but with interface of Hyperlink control.

No, there is no "hyperlink interface." It's just a button... that's it -- a subclassed button with blue underlined text.

I think the confusion here Giorgi, is that you keep referring to this hyperlink interface. You may be using the term in the context of a GUI (graphical user interface). If so, you should specify GUI, because we normally think of GUI in relation to an application not a single button, and so to say "interface of Hyperlink control", sounds like you are referring to a programmatical interface which will render hyperlink behavior.

I think that is the primary source of confusion here with readers. You might want to consider rewording your article and it's subtitle to clarify the issue a bit -- eg. 'Hyperlink Appearance with Standard CButton Behavior'


In business, if two people always agree, one of them is unnecessary.


GeneralRe: Search PinmemberGiorgi Moniava15-Jul-05 22:56 
GeneralRe: Search PinmemberJames R. Twine25-Jul-05 4:58 
GeneralTwo Suggestion PinmemberThatsAlok8-Jul-05 2:41 
GeneralRe: Two Suggestion PinmemberGiorgi Moniava8-Jul-05 23:02 
GeneralNice! PinmemberThatsAlok8-Jul-05 2:12 
GeneralRe: Nice! PinsussAnonymous8-Jul-05 22:44 

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

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

| Advertise | Privacy | Mobile
Web03 | 2.8.140921.1 | Last Updated 20 Jul 2005
Article Copyright 2005 by ddmcr
Everything else Copyright © CodeProject, 1999-2014
Terms of Service
Layout: fixed | fluid