使用静态文本控件制作超链接

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

}




你可能感兴趣的:(超链接)