MFC中WebBrowser.Navigate方法如何调用本地的.htm文件?
来源:互联网 发布:人工智能需要什么专业 编辑:程序博客网 时间:2024/06/09 16:32
-------------------------------------------------------------------------------------------------------------------------------------------
最近开发MFC程序,需要使用WebBrowser控件来调用百度地图API,前端代码写在htm文件中,为了方便程序正确移植,WebBrowser.Navigate方法中的URL参数需要设置相对路径,但是WebBrowser控件不好设置相对路径,因此需要曲线救国,自己拼接绝对路径。
-------------------------------------------------------------------------------------------------------------------------------------------
背景
MFC使用WebBrowser控件调用百度地图API案例!
下载地址: http://download.csdn.net/detail/to_baidu/9825890
下载包中的《基于MFC与第三方类CWebPage的百度地图API开发范例.pdf》教程会教你如何在WebBrowser控件中链接页面并进行百度地图的开发。
下载包WebBrowser.Navigate方法使用的是绝对路径:
//设置浏览器控件跳转的地址,显示自己定义的htm文件m_myweb.Navigate("file:///C:/Users/GO/Documents/Visual Studio 2010/Projects/GeoDemo/GeoDemo/geodemo.htm",NULL,NULL,NULL,NULL);
问题及分析
然而,案例有个小问题:htm文件的URL是通过绝对地址访问的,这种方式在程序移植(譬如拷贝程序到别人的电脑)时就会出现问题:“无法显示此页”,因为Web地址不对,地址是绝对路径,写死了。
在网上百度一通后,想设置相对路径,但是都说MFC的WebBrowser控件不好设置相对路径。因此只有自己通过获取程序所在当前目录,然后拼接成全路径了。
解决方案
step1:用GetCurrentDirectory()函数获取当前目录。
step2:将获取到的当前目录与您要展示的htm文件拼接成全路径。
step3:调用WebBrowser控件的Navigate()函数进行展示。
因此,可将上面的那段代码用下面的的代码进行替换即可。
CString strURL;//htm文件的全路径char chCurtPath[MAX_PATH];//当前目录GetCurrentDirectory(MAX_PATH,chCurtPath);//获取当前目录,并存在chCurtPath中strURL = "file:///"+ (CString)chCurtPath + "/geodemo.htm" ;//将chCurtDrct变量强制转化成CString,并拼接成全路径m_myweb.Navigate(strURL, NULL, NULL, NULL, NULL);
大功告成,此事程序在不同电脑之间移植时就不会出现Web地址不正确的问题了。
- MFC中WebBrowser.Navigate方法如何调用本地的.htm文件?
- 线程中调用WebBrowser的Navigate
- Navigate后如何暂停Webbrowser?
- WebBrowser.Navigate 的刷新问题
- htm页面中调用htm文件代码
- htm页面中调用htm文件代码
- TCppWebBrowser如何调用navigate
- MFC使用webbrowser时navigate的url中有中文字符,在php服务器端取得的是乱码问题的解决方案
- winfrom中WebBrowser调用本地html
- casperjs中调用本地自定义js文件的方法
- .net(c#)在循环语句中执行WebBrowser.Navigate();方法,每次循环等待网页加载完后继续执行的解决方案.(转载)
- net(c#)在循环语句中执行WebBrowser.Navigate();方法,每次循环等待网页加载完后继续执行的解决方案
- 如何在htm文件中调用.htc文件中的js函数
- [MFC]如何禁止webbrowser的网页缩放
- WebBrowser控件中JS调用C#方法
- MFC ActiveX访问WebBrowser(读取本地登录的QQ信息)
- 如何在JavaScript中调用MFC的ActiveX控件的方法
- 实践Java中,Jni调用DLL文件本地方法
- Jquery 中 ajaxSubmit 、ajaxForm使用讲解
- ueditor 编辑器增加滚动条
- docker容器中切换用户,提示权限不足
- 根据路径下载文件
- 当try和finally中都有return的时候,结果是什么?
- MFC中WebBrowser.Navigate方法如何调用本地的.htm文件?
- 关于Unity发布Webgl在chrome中打开报错的问题
- java 1.7控制代码超时时间
- ubuntu server 系统,更换阿里云源
- kali下安装nessus(最新版)及插件下载和更新
- Crontab定时任务解析
- intellij idea 激活方式汇总
- php file_get_contents和curl请求接口并获取数据
- pat 1079