My FAQ,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 编程语言 > Visual C++ > 综合文章
用VC6.0实现超级链接
作者:未知 时间:2005-03-11 12:12 出处:Blog 责编:MyFAQ
              摘要:暂无
用VC6.0实现超级链接
---- 很多windows软件的版权对话框中都设有超级链接,这些链接或提供公司网址,或提供电子邮件信箱,使操作者能够非常方便地与公司和作者联系,同时也为公司作了很好的宣传。如果能在自己写的软件中实现这个功能,定会使程序大增光彩。

---- 实现这个功能要用到一个WINDOWS API函数ShellExecute,其原形为:

HINSTANCE ShellExecute(
HWND hwnd, //窗口句柄
LPCTSTR lpOperation, //操作类型
LPCTSTR lpFile, //文件指针
LPCTSTR lpParameters, //文件可带的参数
LPCTSTR lpDirectory, //缺省目录
INT nShowCmd //显示方式
);

---- ShellExecute函数用于打开或执行一个文件,在调用此函数时只须指定要打开或执行的文件名,而不必管用什么程序去打开或执行文件,WINDOWS会自动根据要打开或执行的文件去判断该如何执行文件或用什么程序去打开文件。以下给出一个完整实例,具体实步骤:

1.创建一个基于对话框的应用程序,命名为hyperlink;
2.打开资源编辑器,在对话框上添加两个static text控件和两个button控件。

---- Static1和button1并列排放,Static1和button1并列排放。

---- 将static1的ID设为ID_STATIC1,caption设为:计算机世界日报:,button1的ID设为ID_BUTTON1,caption设为:http://www.computerworld.com.cn,并选中flat属性。将static2的ID设为:ID_STATIC2,caption设为为:给我写信:,button2的ID设为ID_BUTTON2,caption设为:west_virginia@netease.com,并选中flat属性。

3.创建一个新光标,将其图标编辑成一个手的图像,其ID命名为ID_CURSOR1;
4.给ChyperlinkDlg类增加一个WM_SETCURSOR消息处理函数,其代码如下:

BOOL ChyperlinkDlg::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message)
{
CRect rcButton1,rcButton2;
CPoint ptCursor;
CWnd *pStatic1=GetDlgItem(IDC_BUTTON1);
CWnd *pStatic2=GetDlgItem(IDC_BUTTON2);
pStatic1->GetWindowRect (rcButton1);
pStatic2->GetWindowRect (rcButton2);
GetCursorPos(&ptCursor);
if (rcButton1.PtInRect (ptCursor)||rcButton2.PtInRect (ptCursor))
{
CWinApp *pApp=AfxGetApp();
HICON hIconBang=pApp->LoadCursor (IDC_CURSOR1);
SetCursor(hIconBang);
return TRUE;
}
else

return CDialog::OnSetCursor
(pWnd, nHitTest, message);
}
其作用是当鼠标位于button1和button2控件上时,将其形状设为手形。

5、 给IDC_BUTTON1增加BN_CLICKD消息处理函数,代码如下:
void ChyperlinkDlg::OnButton1()
{
// TODO: Add your control notification handler
code here
ShellExecute(m_hWnd,NULL,
"http://www.computerworld.com.cn",NULL,NULL,SW_SHOWMAXIMIZED);
}

6、 给IDC_BUTTON2增加BN_CLICKD消息处理函数,代码如下:
void ChyperlinkDlg::OnButton2()
{
// TODO: Add your control notification
handler code here
ShellExecute(m_hWnd,NULL,"mailto:west_virginia@netease.com",
NULL,NULL,SW_SHOWMAXIMIZED);
}

---- 运行此程序,在对话框上显示计算机世界日报的首页链接和作者的电子邮件地址,在其上点鼠标左键后将自动进入计算机日报首页或启动邮件收发程序给作者写信,效果很理想。读者可在此基础上进一步完善,使其更专业化,也可将其写成类,用起来更方便。

---- ShellExecute是一功能很强大的函数,本文只使用了它的一种用法,更详细全面的用法可参考Visual studio 6.0中所带的MSDN library 。
关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 myfaq.com.cn All rights reserved. www.myfaq.com.cn 版权所有