MFC超链接静态类的使用

源代码:http://download.csdn.net/detail/nuptboyzhb/4197151

CHyperLink类,是由CStatic类派生出来,重载了CStatic类的如下函数:

public:

virtual BOOL PreTranslateMessage(MSG* pMsg);

virtual BOOL DestroyWindow();

protected:

virtual void PreSubclassWindow();

进行了如下消息响应的处理:

afx_msg HBRUSH CtlColor(CDC* pDC, UINT nCtlColor);

afx_msg BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message);

afx_msg void OnMouseMove(UINT nFlags, CPoint point);

afx_msg void OnTimer(UINT nIDEvent);

afx_msg BOOL OnEraseBkgnd(CDC* pDC);

//}}AFX_MSG

afx_msg void OnClicked();

DECLARE_MESSAGE_MAP()

.CPP文件中,进行消息映射

BEGIN_MESSAGE_MAP(CHyperLink, CStatic)

//{{AFX_MSG_MAP(CHyperLink)

ON_WM_CTLCOLOR_REFLECT()

ON_WM_SETCURSOR()

ON_WM_MOUSEMOVE()

ON_WM_TIMER()

ON_CONTROL_REFLECT(STN_CLICKED, OnClicked)

ON_WM_ERASEBKGND()

//}}AFX_MSG_MAP

END_MESSAGE_MAP()

使用步骤:

1. 新建一下基于对话框的应用程序,添加一个静态文本控件,将其ID设置为ID_MAIL

2. HyperLink.hHyperLink.cpp复制到工程目录下,并将其加入到工程中;

3. 为对话框增加一个CHyperLink类型的m_hyperlink成员变量,用于关联步骤一中的静态文本控件

4. DoDataExchange函数中关联控件:DDX_Control(pDX,IDC_MAIL,m_hyperlink);

5. 在对话框的OnInitDialog()函数中,初始化连接网址:

m_hyperlink.SetURL(_T("http://blog.csdn.net/nuptboyzhb"));

你可能感兴趣的:(mfc)