1、创建一个基于对话框的工程,拖放一个静态文本控件,更改相关属性名称,并添加一个手型的光标资源;
2、建立一个新类,命名为CLinkStatic,以CStatic为基类。
3、在主对话框中,为静态文本控件关联一个CLinkStatic的成员变量;
4、在CLinkStatic中响应OnMouseMove函数:
void CLinkStatic::OnMouseMove(UINT nFlags, CPoint point) { // TODO: Add your message handler code here and/or call default HCURSOR hCursor; hCursor=AfxGetApp()->LoadCursor(IDC_HAND); //将鼠标设为小手状 ::SetCursor(hCursor); CStatic::OnMouseMove(nFlags, point); }
5、在CLinkStatic中响应OnLButtonDown函数:
void CLinkStatic::OnLButtonDown(UINT nFlags, CPoint point) { // TODO: Add your message handler code here and/or call default ShellExecute(0, NULL, "http://www.163.com", NULL,NULL, SW_NORMAL); CStatic::OnLButtonDown(nFlags, point); }
6、在CLinkStatic中响应OnPaint() 函数:
void CLinkStatic::OnPaint() { CPaintDC dc(this); // device context for painting // TODO: Add your message handler code here CPen pen(PS_SOLID,0,RGB(0,0,255)); dc.SelectObject(&pen); CRect rect; GetWindowRect(&rect); ScreenToClient(&rect); dc.SetBkMode(TRANSPARENT); dc.SetTextColor(RGB(0,0,255)); dc.TextOut(rect.left,rect.top+5,www.163.com); dc.SetTextAlign(TA_UPDATECP | TA_TOP); dc.MoveTo(rect.left,rect.top+rect.Height()/2+12); dc.LineTo(rect.left+205,rect.top+rect.Height()/2+12); // Do not call CStatic::OnPaint() for painting messages }