MFC 中创建简单超链接

本文将简单的介绍使用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, _T(“http://www.zsc.edu.cn”), NULL,NULL, SW_SHOWNORMAL);
//ShellExecute(NULL, _T("open"),_T("mailto:hsxw001@163.com"), NULL, NULL, SW_SHOWNORMAL);

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

}}

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

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值