Click here to Skip to main content
11,583,532 members (66,455 online)
Click here to Skip to main content

A Static Hyperlink control

, 26 Dec 2002 Ms-PL 136.5K 3.6K 35
Rate this:
Please Sign up or sign in to vote.
An article describing the usage of a CStatic derived Hyperlink control

Introduction

This article describes a simple CStatic derived Hyperlink control, which can be used in your project to link to any URL such as your company's website or EMail. In addition to that, this control can fire an event  to the parent dialog, it can be used to popup another dialog, or whatever else you want to do.

This controls features include :-

  1. Link to the URL  and EMails ,and can be link in to another child dialog
  2. Customize the colors of link, visited and hover (if you do not specify, they use the standard style)
  3. Enable/disable the Tooltip, and customize the back-color and text-color of the tool-tip

Using the code

For using this class in your project, you have to do :-

  1. Add MyHyperlink.cpp and MyHyperlink.h to the project.
  2. Include MyHyperlink.h in the header file where the controls are defined
  3. Create (or edit) a member variable for each button you want to customize as CMyHyperlink. If the Class Wizard doesn't show the CMyHyperlink type, select CStatic and then edit the code manually.

In the demo project, m_Static1, m_Static2, m_Static3 are the CMyHyperlink controls :-

//Set the target URL 
m_Static1.SetLinkUrl("www.codeproject.com");
//Enable showing the Tooltip
m_Static1.ActiveToolTip(1);
//Set the Tooltiptext
m_Static1.SetTootTipText("Click Here to go Codeproject");
//Set the tooltip Background Color
m_Static1.SetToolTipBgColor(RGB(0, 0, 0));
//Set the Tooltip Text Color
m_Static1.SetToolTipTextColor(RGB(0, 255, 0));

// Change the default Linktext, HoverText, Visited Colors 
// if you don't specify the colors the control will use the 
//defaults..

m_Static1.SetLinkColor(RGB(255, 0, 0)); 
m_Static1.SetHoverColor(RGB(0, 0, 255));
m_Static1.SetVisitedColor(RGB(0, 13, 0));

m_Static2.SetLinkUrl("mailto:renjith_sree@hotmail.com");
m_Static2.ActiveToolTip(1);
m_Static2.SetTootTipText("Click here to Email Me..");

//The SetFireChild(1) method will enable the 
//event firing to the parent dialog
m_Static3.SetFireChild(1);
m_Static3.ActiveToolTip(1);
m_Static3.SetTootTipText("Click Here to Fire An event to parent");

For trapping the event from the CMyHyperlink control you must trap the message in your dialog by adding the ON_MESSAGE(_HYPERLINK_EVENT,OnChildFire) in the MESSAGE MAP of the dialog, the definition of the function is like

void CControlContainerDlg::OnChildFire(WPARAM wparam, LPARAM lparam)           
{
    //...
}

The WPARAM contains the ID of the control from where the Event coming from.

Points of Interest

During the development, I faced a problem to get the standard windows  hand cursor when the mouse is over the controls. I searched for that  in various resources and at last I found that from a site, they described how to load the hand cursor resource from a file, but here I also included a resource of hand cursor with id IDC_CURSOR_HAND

License

This article, along with any associated source code and files, is licensed under The Microsoft Public License (Ms-PL)

Share

About the Author

Simplicity is the ultimate sophistication. Believing in application, then the technology.

You may also be interested in...

Comments and Discussions

 
GeneralTo make Hand appeir Pin
tetedanus21-Feb-11 5:28
membertetedanus21-Feb-11 5:28 
Generalsmall problem Pin
wcccodeproject30-Dec-10 20:52
memberwcccodeproject30-Dec-10 20:52 
GeneralUnicode Pin
dima polyakov22-May-07 13:31
memberdima polyakov22-May-07 13:31 
GeneralGood class, but bad code quality Pin
math|fourier11-Oct-06 4:41
membermath|fourier11-Oct-06 4:41 
GeneralRe: Good class, but bad code quality Pin
Renjith Ramachandran23-Nov-06 18:43
memberRenjith Ramachandran23-Nov-06 18:43 
GeneralGood Control Pin
baiju.km2-Nov-05 2:38
memberbaiju.km2-Nov-05 2:38 
Hi,

Eda Nee Eppozhum Jeevichirippundo. I heard You Jumped From M2.
You Became Gold Member Me Too.
Mail Me baijumax@yahoo.com With Updates



Regards
BAIJUMAX
Generalwithout using MFC Pin
maharsoft6-Jan-04 2:17
membermaharsoft6-Jan-04 2:17 
QuestionIncorrect colors? Pin
dennisV3-Dec-03 14:03
memberdennisV3-Dec-03 14:03 
AnswerRe: Incorrect colors? Pin
foxbat3-Jan-04 2:19
memberfoxbat3-Jan-04 2:19 
GeneralHyperlink Color in Win XP Pin
SVarnavsky18-Oct-03 11:40
memberSVarnavsky18-Oct-03 11:40 
GeneralRe: Hyperlink Color in Win XP Pin
renjith_sree6-Feb-06 7:11
memberrenjith_sree6-Feb-06 7:11 
GeneralBug Pin
ironfelix2-Sep-03 20:56
memberironfelix2-Sep-03 20:56 
GeneralBackground color and transparency Pin
Appstmd18-Jul-03 0:02
memberAppstmd18-Jul-03 0:02 
Questionwhy this class can not use create? Pin
poor31-May-03 22:01
susspoor31-May-03 22:01 
AnswerRe: why this class can not use create? Pin
Renjith R31-May-03 22:35
memberRenjith R31-May-03 22:35 
GeneralRe: why this class can not use create? Pin
saptor20-Jan-05 11:17
membersaptor20-Jan-05 11:17 
GeneralRe: why this class can not use create? Pin
zwzzj16-Mar-07 20:58
memberzwzzj16-Mar-07 20:58 
GeneralBig Big Bugs!!! Pin
psusong31-May-03 17:02
memberpsusong31-May-03 17:02 
GeneralRe: Big Big Bugs!!! Pin
tijske22-Mar-06 2:22
membertijske22-Mar-06 2:22 
Generalexcellent Pin
asrx28-Jan-03 1:11
memberasrx28-Jan-03 1:11 
GeneralRe: excellent Pin
Renjith R28-Jan-03 4:06
memberRenjith R28-Jan-03 4:06 
GeneralStandard hand cursor Pin
Tak29-Dec-02 3:57
memberTak29-Dec-02 3:57 
GeneralRe: Standard hand cursor Pin
Renjith R29-Dec-02 6:30
memberRenjith R29-Dec-02 6:30 
GeneralRe: Standard hand cursor Pin
Tak29-Dec-02 6:37
memberTak29-Dec-02 6:37 
GeneralRe: Standard hand cursor Pin
Renjith R29-Dec-02 13:59
memberRenjith R29-Dec-02 13:59 
GeneralRe: Standard hand cursor Pin
Tak29-Dec-02 14:07
memberTak29-Dec-02 14:07 
GeneralRe: Standard hand cursor Pin
Hockey3-May-04 0:23
memberHockey3-May-04 0:23 
GeneralRe: Standard hand cursor Pin
Anonymous15-Aug-05 22:59
sussAnonymous15-Aug-05 22:59 
GeneralExcellent.... Pin
Anonymous27-Dec-02 13:15
sussAnonymous27-Dec-02 13:15 
GeneralRe: Excellent.... Pin
Renjith R31-May-03 18:17
memberRenjith R31-May-03 18:17 
Questionbetter hyperlink? Pin
Anonymous27-Dec-02 7:50
sussAnonymous27-Dec-02 7:50 
AnswerRe: better hyperlink? Pin
Anonymous27-Dec-02 13:13
sussAnonymous27-Dec-02 13:13 
GeneralRe: better hyperlink? Pin
Emcee Lam29-Dec-02 13:55
memberEmcee Lam29-Dec-02 13:55 

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 | Terms of Use | Mobile
Web04 | 2.8.150603.1 | Last Updated 27 Dec 2002
Article Copyright 2002 by Renjith Ramachandran
Everything else Copyright © CodeProject, 1999-2015
Layout: fixed | fluid