MFC中WebBrowser.Navigate方法如何调用本地的.htm文件?
2017-04-29 23:57
537 查看
-------------------------------------------------------------------------------------------------------------------------------------------
最近开发MFC程序,需要使用WebBrowser控件来调用百度地图API,前端代码写在htm文件中,为了方便程序正确移植,WebBrowser.Navigate方法中的URL参数需要设置相对路径,但是WebBrowser控件不好设置相对路径,因此需要曲线救国,自己拼接绝对路径。
-------------------------------------------------------------------------------------------------------------------------------------------
下载地址: http://download.csdn.net/detail/to_baidu/9825890
下载包中的《基于MFC与第三方类CWebPage的百度地图API开发范例.pdf》教程会教你如何在WebBrowser控件中链接页面并进行百度地图的开发。
下载包WebBrowser.Navigate方法使用的是绝对路径:
在网上百度一通后,想设置相对路径,但是都说MFC的WebBrowser控件不好设置相对路径。因此只有自己通过获取程序所在当前目录,然后拼接成全路径了。
step2:将获取到的当前目录与您要展示的htm文件拼接成全路径。
step3:调用WebBrowser控件的Navigate()函数进行展示。
因此,可将上面的那段代码用下面的的代码进行替换即可。
大功告成,此事程序在不同电脑之间移植时就不会出现Web地址不正确的问题了。
最近开发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中的函数打开一个系统资源面板,获取文件
- TCppWebBrowser如何调用navigate
- C#调用exe文件,IIS发布后无法掉用本地exe程序的解决方法
- C#调用Exe文件的方法及如何判断程序调用的exe已结束
- 如何在htm文件中调用.htc文件中的js函数
- 如何通过AS3加载外部SWF文件,调用外部文件文档类的方法?
- java本地方法如何调用其他程序函数,方法详解2
- 远程桌面如何复制本地文件 远程桌面拷贝电脑上的文件方法
- MFC exe文件单独运行 调用图片方法
- 实践Java中,Jni调用DLL文件本地方法
- 用C#编程从数据库中读取图片数据导进Excel文件的方法(如何从数据库中读取保存的文件,直接打开,中间不保存到本地)
- javabean操作文件正确,但是Jsp调用javabean时文件路径出错问题解决之JavaBean访问本地文件实现路径无关实现方法
- 远程桌面如何复制本地文件 远程桌面拷贝电脑上的文件方法
- 在EXE文件中如何实现调用另外一个EXE文件中的方法?
- 关于本地C++,MFC应用程序调用.NET控件做显示层的方法
- 如何通过AS3加载外部SWF文件,调用外部文件文档类的方法?
- jsp内存数据下载到本地--弹出的文件保存框时 两次调用action中下载方法问题
- C#调用exe文件,IIS发布后无法掉用本地exe程序的解决方法
- java本地方法如何调用其他程序函数,方法详解
- 用C#编程从数据库中读取图片数据导进Excel文件的方法(如何从数据库中读取保存的文件,直接打开,中间不保存到本地)