社区
Google技术社区
帖子详情
如何把Google Earth的地图显示区域嵌入到一个MFC窗口中
lailzhihou
2009-09-01 03:35:14
我想做的是在MFC的对话框程序中,如何调用Windows API将GoogleEarth的界面隐藏掉,并将GoogleEarth的地图显示在自定义的窗体上????
...全文
1980
9
打赏
收藏
如何把Google Earth的地图显示区域嵌入到一个MFC窗口中
我想做的是在MFC的对话框程序中,如何调用Windows API将GoogleEarth的界面隐藏掉,并将GoogleEarth的地图显示在自定义的窗体上????
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zsh817227
2012-05-23
打赏
举报
回复
我也遇到相同的问题了 不过程序才启动的时候可以用 等鼠标移动后在放回来就不起作用了
筋肉强打
2010-08-03
打赏
举报
回复
不过新的问题出现了,就是地图嵌入到程序中后,不能对其进行键盘操作了,它的焦点始终都是在父窗口上....这么解决?
筋肉强打
2010-08-03
打赏
举报
回复
楼主,亲乃的,爱死你了!
huxiaoweiyoung
2009-10-15
打赏
举报
回复
楼主,有源码吗?分享一下啊!!!
lyysf1
2009-09-15
打赏
举报
回复
这个网站真不错啊
barech
2009-09-15
打赏
举报
回复
顶一下楼主,呵呵
回去研究研究如何显示
lailzhihou
2009-09-08
打赏
举报
回复
前几天没空,今天才来回复一下,问题只是基本解决,但解决的不好,小弟在这里抛砖引玉,希望高手提供更好的方法。说明一下,我使用的Google Earth是简体中文5.0正式版。
我在解决这个问题前先看了这两位大虾的文章:
http://www.cnblogs.com/wpwen/archive/2009/02/22/1395622.html
http://blog.163.com/lionyue@126/blog/static/1079307120097212449115/
两篇文章基本一样。
下面说说我的做法,基本和上面的一样。还是先来段代码:
//获取客户端框架窗口句柄
m_hMainWnd = m_geApplication.GetMainHwnd();
//设置Google Earth窗口的位置和大小
::SetWindowPos((HWND)m_hMainWnd, HWND_BOTTOM, 0, 0, STATIC_GOOGLEEARTH_WIDTH+AP_GOOGLEEARTH_LEFTWIDTH+AP_GOOGLEEARTH_RIGHTWIDTH, STATIC_GOOGLEEARTH_HEIGHT+AP_GOOGLEEARTH_TOPHEIGHT+AP_GOOGLEEARTH_BOTTOMHEIGHT, SWP_HIDEWINDOW);
OLE_HANDLE renderhwnd = m_geApplication.GetRenderHwnd();
HWND GEParentHrender = ::GetParent((HWND)renderhwnd);
::ShowWindow(GEParentHrender, SW_HIDE);
//把HWND和窗口上的一个静态文本控件绑定
::SetParent((HWND)renderhwnd, m_static_googleearth.GetSafeHwnd());
我的代码与前面两位大虾所提到的不同之处在于设置Google Earth窗口的大小,他们都说要设置成没有大小的。而我却把它设置成有大小的。他们提到说设置成没有大小的,是因为他们说可以使用类似:
::MoveWindow((HWND)renderhwnd, 0, 0, width, height, true);
这样的语句来控制这个现实区域的大小和位置,但是我在使用这样的语句的时候,发现并没有起作用。我不知道是否是与我的Google Earth的版本有关系??
我的解决该问题的办法就是设置Google Earth的客户端为一个指定的大小,如800X600,那么此时他的画图的现实区域也是一个固定大小的,可能是730X592,这个大小是在隐藏左侧面板的条件下的,由于除去了客户端的标题,工具栏,和左右下的边框等,所以显示区域就只有这么大了。如果你想得到一个800X600大小的显示区域,那么可能就需要把客户端指定为870X608的大小了。
这样做基本能解决这个问题,但是有个很不好的地方,就是,如果别人的电脑使用的字体是大字体或超大字体(我使用的是普通字体)的时候,都会使窗口的标题栏的高度变大,也就是说这时候设置了870X608大小的Google Earth客户端的话,并不能得到800X600的画图窗口,还有一些其他的原因也会产生这样的问题。在这些情况下就会得不到一个固定大小的画图窗口,这样就会很不方便。我在想是否有没有什么办法能够获取到当前的画图窗口的大小。或是像两位大虾提到的能使用MoveWindow那就更好。
希望有这方面经验的高手来指点一下!!!
马少华
2009-09-01
打赏
举报
回复
怎么做的,能不能共享一下啊。
lailzhihou
2009-09-01
打赏
举报
回复
问题基本解决了,来个人接分呀!!!
VC++ 对话框
嵌入
google
ear
th
vc++ 对话框
嵌入
google
ear
th
实用与初学者
GeTest.zip
vs2015, 将
Google
Ear
th
的视图
窗口
嵌入
到单文档
mfc
中
. 安装的
google
ear
th
pro
基于
Google
Ear
th
的导航电子
地图
设计
文
中
对
Google
Ear
th
的二次开发进行了研究,基于
MFC
进行软件编程,设计了导航电子
地图
软件。通过调用
Google
Ear
th
API函数 和Windows API函数,将
Google
Ear
th
视图
窗口
嵌入
到软件界面
中
,使用钩子技术实现在
Google
Ear
th
视图
窗口
中
右键弹出菜单,结合CMarkup类和BasicExcel类实现在电子
地图
上添加航迹点和航线,从而实现了在电子
地图
上进行航迹规划和
显示
实时航迹的功能。经过实际运行,软件执行效果良好,很好地完成了各种功能。
Google
Ear
th
嵌入
Qt应用程序
Google
Ear
th
嵌入
Qt应用程序专业术语前提准备实现方案遇到问题 专业术语 COM组件:COM是Component Object Mode的缩写,是微软定义的接口标准,遵循该标准的小程序是COM组件,它可以是独立的可执行二进制程序,也可以是动态链接库等。
Google
Ear
th
:它是
Google
公司推出的一款桌面
地图
产品,二次开发可以基于基于
Google
Ear
th
ComAPI 和Go...
利用VC编程控制
Google
Ear
th
的实践指南
Google
Ear
th
API是
一个
允许开发者通过JavaScript集成
Google
Ear
th
三维
地图
的网络应用程序接口。这个API不仅允许开发者在网页上
嵌入
一个
可交互的
Google
Ear
th
视图,而且可以利用JavaScript编程扩展
Google
Ear
th
的功能,从而创造出独特的用户体验。
Google
Ear
th
API通过一系列的Web服务接口实现地球数据的可视化,它支持大多数主流浏览器并可运行在不同操作系统上。
Google技术社区
6,720
社区成员
3,232
社区内容
发帖
与我相关
我的任务
Google技术社区
专题开发/技术/项目 Google技术社区
复制链接
扫一扫
分享
社区描述
专题开发/技术/项目 Google技术社区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章