分享

MFC 中创建简单超链接

 行走在理想边缘 2014-07-17

本文将简单的介绍使用ShellExecute这个API函数,在About对话框的静态文本控件上创建一个指向指定网页的超级链接!

1)  在CAboutDlg中添加一个成员变量

protected:
RECT m_pRectLink; //用于保存静态文本框的屏幕坐标

2)  在About对话框资源上添加一个CStatic控件,ID命为IDC_LINK;

3)  在OnInitDialog()中添加如下代码,以获得控件坐标

GetDlgItem(IDC_LINK)->GetWindowRect(&m_pRectLink);
ScreenToClient(&m_pRectLink);

4)  当鼠标移动到热点上时,鼠标指针变成手型

为WM_MOUSEMOVE添加消息响应函数OnMouseMove(UINT nFlags, CPoint point),在该函数中, point参数可获得对应于窗口左上角的鼠标坐标,通过判断算法就可实现事件的控制。

if(point.x > m_pRectLink.left && point.x < m_pRectLink.right && point.y > m_pRectLink.top && point.y < m_pRectLink.bottom)
{
    HCURSOR hCursor;
    hCursor = AfxGetApp()->LoadCursor(IDC_HANDLINK);
    SetCursor(hCursor);
}

else{…….};//设置默认鼠标指针的形状

5)  为About对话框添加WM_LBUTTONDOWN消息响应函数OnLButtonDown(UINT nFlags, CPoint point)

if(point.x > m_pRectLink.left && point.x < m_pRectLink.right && point.y > m_pRectLink.top && point.y < m_pRectLink.bottom)
{

if (nFlags==MK—LBUTTON)//鼠标左键按下
{

//为改善鼠标效果,此处加入以上变换鼠标形状的代码
ShellExecute(NULL, NULL, _TNULL,NULL, SW_SHOWNORMAL);
//ShellExecute(NULL, _T("open"),_T("mailto:hsxw001@163.com"), NULL, NULL, SW_SHOWNORMAL);

//在默认邮件客户端中打开新邮件窗口,并自动填入收件人地址。若指定多个收件人地址,则收件人地址之间必须用分号或逗号分隔开。

}}

关于ShellExecute()函数的用法详情,请参考MSDN

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多