阅读:2510回复:6
如何在MFC中实现Legend控件?
<P>建了一个显示矢量图的主视窗CMainView,再建了一个显示图例的视窗CLegendView,窗口被切分为两部分,地图在CMainView窗口中能显示,但图例在CLegendView窗口中却怎么也显示不出来.</P>
<P>我的问题是,如何在MFC中实现两个视的调用,必须得通过文档类吗?,另外在Legend该如何初始化?</P> <P>请高手指点!!</P> |
|
1楼#
发布于:2004-12-06 08:43
<P>看例子</P>
|
|
|
2楼#
发布于:2004-12-06 08:44
搜索一下以前的贴
|
|
|
3楼#
发布于:2004-12-06 10:11
void CMapView::SetLegend(CMap1 ;map, C_legend ;legend)
{ LPUNKNOWN pUnknown = map.GetControlUnknown(); LPDISPATCH pDispatch = 0; if (pUnknown) pUnknown->QueryInterface(IID_IDispatch, (void**);pDispatch); if (pDispatch) legend.setMapSource(;pDispatch); int pbool = 1; legend.LoadLegend(;pbool); if (pDispatch) pDispatch->Release(); } |
|
4楼#
发布于:2004-12-09 23:27
<P>感谢各位大虾的鼓励和支持!</P><P>楼上大虾给的是Legend初始化的的源码,非常感谢,正用得上.</P><P>另外在主视窗CMainView中显示地图,在CLegendView视窗中显示图例的实现我是这样完成的:通过主文档类CMainDoc调用主视窗CMainView中的地图指针(;m_map)并传递到CLegendView中,并在CLegendview类的OnDraw(CDC *pDC)函数中调用楼上给出的初始化函数SetLegend(CMap1 ;map, C_legend ;legend),就可以实现在CMainView窗口中显示地图,在CLegendView视窗中显示图例.</P><P>如果不通过主文档类CMainDoc调用主视窗CMainView中的地图指针,再传递到CLegendView,而是主视窗CMainView中的地图指针直接传递到CLegendView中,程序不能成功.</P><P>在CLegendview类中,如果不通过OnDraw(CDC *pDC)函数调用初始化函数SetLegend(CMap1 ;map, C_legend ;legend),程序也不能成功.</P><P>
</P> |
|
5楼#
发布于:2005-07-12 21:23
<img src="images/post/smile/dvbbs/em01.gif" />, 很好的经验啊
|
|
6楼#
发布于:2006-07-25 02:40
<P>能否说一下在C#中怎么使用的啊?</P>
|
|