MAPX中的OnDrawUserLayer怎样被触发?(及其诡异的问题)

heshunchengbeicun 2011-08-15 07:32:15
1、定义工具(MYTOOL1)
2、创建该工具m_ctrMapX.CreateCustomTool(MYTOOL_TRACE,miToolTypePoint,miCrossCursor);//轨迹
3、设计响应函数
a.在视或文档的头文件中添加DECLARE_EVENTSINK_MAP()
b.在相应的cpp文件中添加:
BEGIN_EVENTSINK_MAP(CGpsMapView, CView)

ON_EVENT(CGpsMapView, IDC_MAP, MAPX_DISPID_DRAWUSERLAYER, OnDrawUserLayer, VTS_DISPATCH VTS_I4 VTS_I4 VTS_DISPATCH VTS_DISPATCH)

END_EVENTSINK_MAP()
c、编写OnDrawUserLayer()响应函数
4、在调用该工具的地方m_ctrMapX.SetCurrentTool(MYTOOL1)


但是我反复测试过了,OnDrawUserLayer函数不会被触发!
是不是消息还没有被绑定好呢?问题出在哪里呢?请高人回答!

...全文
137 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
spotatoes 2011-09-09
  • 打赏
  • 举报
回复
那个是自定义用户图层事件,你需要创建了用户图层才会调用

m_mapxCtrl.GetLayer().AddUserDrawLayer("WWW",1); //添加用户图层,然后在事件里面可以用HDC画图了
fishion 2011-08-16
  • 打赏
  • 举报
回复
你要调用OnDrawUserLayer方法

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧