在MFC应用中深入定制WebBrowser控件
来源:互联网 发布:hy p580手写板软件 编辑:程序博客网 时间:2024/06/06 05:55
正如VC ++ 6.0的演示程序MFCIE所示,用应用程序向导创建一个具有Web导航能力的MFC应用可谓轻而易举。本文在此基础上,进一步讨论两个问题:资源自包含的实现,上下文菜单以及快捷键的完全控制。
步骤/方法
- 资源自包含及res协议
所谓的资源自包含,指的是在最终产品中HTML文档(包括相关资源如脚本、图片)成为执行文件的一部分,就象其它资源(如应用程序图标)一样,而不是以独立文件形式分发。
资源自包含不仅使产品分发更为方便,而且在最终用户面前隐藏了更多的实现细节,具有一定的现实意义。
MFC类CHtmlView不仅把WebBrowser控件的所有功能(如导航,用户接口配置等)重新整理成为C++方法和MFC事件映射,还提供了许多“原创”的功能。其中之一便是从包含它的应用程序中读取Web页面的能力。完成这个任务的主要方法为CHtmlView::LoadFromResource(),其原型如下: - BOOL LoadFromResource( LPCTSTR lpszResource ); //用字符串指定资源ID
BOOL LoadFromResource( UINT nRes ); //用数字指定资源ID
LoadFromResource()依赖于res://协议(IE在找不到URL指定的服务器时,所显示的错误提示页面即使用res协议引出。)res协议的URL和常见的http或ftp协议所用URL格式不同,它的完整语法为: - res://resource_file[/resource_type]/resource_id
其中resource_file为包含目标资源的执行文件名字。resource_type为资源类型,它可能用数字表示,也可能用字符串表示。当资源为定制或不直接支持类型时用字符串指出资源类型(如GIF,JPEG等,可在.RC文件中定义);当资源为已知类型时该值往往用数字表示(如位图为2,HTML为23)。已知资源类型的完整列表可以参见winuser.h,它是一组RT_常量。
CHtmlView::LoadFromResource()总是假定目标资源所在的执行文件为当前模块。但在实际应用中,我们往往要把资源分类放在不同文件中。为解决此问题,可以定义一个派生类CHtmlViewEx覆盖此方法,只需要对原方法略作修改引入模块参数即可: - 清单
BOOL CHtmlViewEx::LoadFromResource(LPCTSTR lpszModule, LPCTSTR lpszResource)
{
CString strResourceURL;
strResourceURL.Format(_T(" res://%s/%s" ), lpszModule, lpszResource);
Navigate(strResourceURL, 0, 0, 0);
return TRUE;
}
- 在MFC应用中深入定制WebBrowser控件(转)
- 在MFC应用中深入定制WebBrowser控件(转)
- 在MFC应用中深入定制WebBrowser控件(转)
- 在MFC应用中深入定制WebBrowser控件
- 在MFC应用中深入定制WebBrowser控件(转)
- 在MFC应用中深入定制WebBrowser控件
- 定制 WebBrowser 控件
- 定制 WebBrowser 控件
- 在MFC中应用CTreeCtrl控件
- C#项目中WebBrowser控件的应用
- 在MFC中应用CTreeCtrl控件的技巧
- 在MFC中应用CTreeCtrl控件的技巧
- 在MFC中应用CTreeCtrl控件的技巧(对话框重叠)
- 在MFC中应用CTreeCtrl控件的技巧
- 在MFC中应用CTreeCtrl控件的技巧
- 在MFC中应用CTreeCtrl控件的技巧 [vckbase]
- 在MFC中应用CTreeCtrl控件的技巧
- 在MFC中应用CTreeCtrl控件的技巧
- 学习OpenCV——Laplacian图像融合
- 局域网聊天9月局域网聊天
- 获取一个视图中所有可见的对象
- OSAL调度机制(转载)
- OSAL调度机制(转载)
- 在MFC应用中深入定制WebBrowser控件
- 遍历UIView子视图,找出按钮控件,如果点击在范围内则返回当前控件
- 麦克风的喧响伪原创工具
- jquery1.7有感(1)
- 调用Android系统“应用程序信息(Application Info)”界面
- 作风和个性特点伪原创工具
- Android 程序获取、设置铃声音量
- QTP sky下Native Properties和Identification Propertie的区别
- UNIX下STDIN_FILENO与stdin区别