在vc++对话框编程中,我们处于某种需要(介绍自己的软件或者自己的博客)可以在对话框上增加一个网址链接,用户只要一点击,就进入了相应的网页,我在此演示下如何完成。

1 打开编译器,我们新建一个基于对话框的工程(其他形式的也可以),我们以对话框为例,在资源视图中去除原有的静态文本控件,然后为对话框添加一个静态文本框(注:其他控件也可以实现,例如编辑框控件,按钮控件,都可以)。

2 修改ID为IDC_MyBolg_STATIC,标题改为:“我的博客“,最重要的一点就是一定要把,该控件的notify属性改为true(否则无法对其添加响应函数),然后右键或者双击为该控件添加消息响应函数,在其响应函数中添加如下代码即可。

其中我们用到了一个API函数,ShellExecute(),我们看下他的解释。

c++的API定义如下:

ShellExecute的功能是运行一个外部程序(或者是打开一个已注册的文件、打开一个目录、打印一个文件等等),并对外部程序有一定的控制。

HINSTANCE ShellExecute(

HWND hwnd,

LPCTSTR lpOperation,

LPCTSTR lpFile,

LPCTSTR lpParameters,

LPCTSTR lpDirectory,

INT nShowCmd

);

现在我要解释下此函数的作用:

ShellExecute(hWnd: HWND; Operation, FileName, Parameters,Directory:PChar; ShowCmd: Integer): HINST; stdcall;

  ●hWnd:用于指定父窗口句柄。当函数调用过程出现错误时,它将作为Windows消息窗口的父窗口。例如,可以将其设置为应用程序主窗口

句柄,即Application.Handle,也可以将其设置为桌面窗口句柄(用GetDesktopWindow函数获得)。

  ●Operation:用于指定要进行的操作。其中“open”操作表示执行由FileName参数指定的程序,或打开由FileName参数指定的文件或文件

夹;“print”操作表示打印由FileName参数指定的文件;“explore”操作表示浏览由FileName参数指定的文件夹。当参数设为nil时,表示执

行默认操作“open”。

  ●FileName:用于指定要打开的文件名、要执行的程序文件名或要浏览的文件夹名。

  ●Parameters:若FileName参数是一个可执行程序,则此参数指定命令行参数,否则此参数应为nil或PChar(0)。

  ●Directory:用于指定默认目录。

  ●ShowCmd:若FileName参数是一个可执行程序,则此参数指定程序窗口的初始显示方式,否则此参数应设置为0。

若ShellExecute函数调用成功,则返回值为被执行程序的实例句柄。若返回值小于32,则表示出现错误。

现在说明一下此函数的打开网页的用法:如果将FileName参数设置为“http:”协议格式,那么该函数将打开默认浏览器并链接到指定的URL地址。若用户机器中安装了多个浏览器,则该函数将根据Windows 9x/NT注册表中http协议处理程序(Protocols Handler)的设置确定启动哪个浏览器(即电脑的默认浏览器)

例如:ShellExecute(handle,'open', http:// ; www.zzu.edu.cn', nil, nil, SW_SHOWNORMAL);

那么现在有一个疑问,就是我们没有包含该函数的头文件,却可以使用它,这是因为我们所写的是MFC程序,在windows.h中已经嵌套的包含了该函数,所以我们可以正常使用。

此时我们运行程序。点击静态文本框,则弹出我们设置好的网页。

最新文章

  1. Ioc和Ao使用扩展
  2. PHP计算两个时间段是否有交集(边界重叠不算)
  3. c#汉字与编码之间的转换(输出十六进制)
  4. 怎么样eclipse发达国家多重聚合关系maven项目和使用git管理
  5. CDOJ 1270 Playfair(模拟)
  6. PHP实现类似于MySQ L的group by 效果
  7. Python多线程练习(threading)
  8. C#关于xml文件和TreeView之间的转换解析
  9. 【转】flannel网络的VXLAN及host-gw
  10. 设计模式 工厂模式 使用shared_ptr
  11. [Android Pro] Android P版本 新功能介绍和兼容性处理(三)Android Studio 3.0 ~ 3.2 其他特性
  12. switch只跟在这些之后
  13. oracle使用随笔
  14. [转载]C#委托与事件--简单笔记
  15. 20165203《Java程序设计》第二周Java学习总结
  16. 【CF833E】Caramel Clouds
  17. 《深入Java虚拟机》笔记
  18. 2、Web基本介绍及Html语法介绍
  19. A Great List of Windows Tools
  20. eclipse去掉xml验证的方法

热门文章

  1. 关于TCP协议握手的那些事儿
  2. Oracle笔记 十三、PL/SQL面向对象之package
  3. ntfs安全权限和共享权限的区别
  4. hdu1150
  5. IIS FTP文件服务器搭建步骤
  6. Android IOS WebRTC 音视频开发总结(五七)-- 网络传输上的一种QoS方案
  7. sqlite mvc分页
  8. SQL中补0
  9. 例题6-10 The Falling Leaves,UVA699
  10. 使用WIF实现单点登录Part III —— 正式实战