gzstyxb
路人甲
路人甲
  • 注册日期2004-09-22
  • 发帖数358
  • QQ
  • 铜币1045枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:1462回复:0

各位使用过图例开发接口ILegendWizard吗?

楼主#
更多 发布于:2006-09-30 12:05
<P>该接口无法正确运行,在DoModal这里出现错误,程序完蛋。去<a href="http://forums.esri.com/Forums.asp?c=93" target="_blank" >http://forums.esri.com/Forums.asp?c=93</A> 寻求原因,别人也遇到这样的错误,却没有人回答原因。</P>
<P>有明白原因的各位,请指教!!!</P>
<P>我的代码如下:</P>
<P> IUIDPtr id(CLSID_UID);<BR> id->put_Value(CComVariant("esriCore.Legend"));</P>
<P> IGraphicsContainerPtr gt = m_wndPageCtrl.GetGraphicsContainer();<BR> IActiveViewPtr view = m_wndPageCtrl.GetActiveView();<BR> IMapPtr map;<BR> view->get_FocusMap(;map);<BR> IFrameElementPtr frame;<BR> gt->FindFrame(_variant_t((IUnknown*)map), ;frame);<BR> IMapFramePtr pMapFrame = frame;</P>
<P> IMapSurroundFramePtr pMapSurroundFrame;<BR> pMapFrame->CreateSurroundFrame(id, NULL, ;pMapSurroundFrame);</P>
<P> VARIANT_BOOL b = VARIANT_TRUE;<BR> ILegendWizardPtr pLegendWizard(CLSID_LegendWizard);<BR> LPUNKNOWN lpun = m_wndPageCtrl.GetPageLayout();<BR> IPageLayoutPtr page = lpun;<BR> pLegendWizard->putref_PageLayout(page);<BR> pLegendWizard->put_InitialLegendFrame(pMapSurroundFrame);<BR> pLegendWizard->DoModal((OLE_HANDLE)this->m_hWnd, ;b);<BR> if (VARIANT_FALSE == b) <BR>  return;</P>
<P> IElementPtr element = pMapSurroundFrame;<BR> CGeometryTracker tracker;<BR> IGeometryPtr ipGeometry;<BR> tracker.TrackerLine(;m_wndPageCtrl, ipGeometry);<BR> element->put_Geometry(ipGeometry);</P>
<P> VARIANT vt0, vt1;<BR> VariantInit(;vt0);<BR> VariantInit(;vt1);<BR> m_wndPageCtrl.AddElement(element, vt0, vt1, CComVariant("dd"), 0);</P>
<P> VARIANT vt;<BR> VariantInit(;vt);<BR> m_wndPageCtrl.Refresh(esriViewBackground, vt, vt);</P>
喜欢0 评分0
由爱故生忧, 由爱故生怖. 若离于爱者, 无忧亦无怖.
游客

返回顶部