|
milidong :
大家帮忙,我想在指定的点上显示一个位图,怎么实现?
能帮忙解决吗,谢谢!给一个新代码更好!
wxqzhy :
用下面的代码试试,应该没问题 if (ToolNum == MYTOOL_SYMBOL) { try { //create a new mapx point CMapXPoint pt; pt.CreateDispatch(pt.GetClsid()); //set the point's location to the mouse down coords pt.Set(X1, Y1); //create a new variant to pass to the AddFeature method VARIANT p; p.vt = VT_DISPATCH; //set up the variant to refer to the point p.pdispVal = pt.m_lpDispatch; //create a new bitmapsymbols collection CMapXBitmapSymbols bmps; bmps.CreateDispatch(bmps.GetClsid()); //create a new style object like the MapX default CMapXStyle sty = m_ctrlMapX.GetDefaultStyle().Clone(); //tell the style object a bitmap symbol is going to be used sty.SetSymbolType(miSymbolTypeBitmap); //set the new style's properties to a 24 point bitmap symbol // I am arbitrarily choosing the fourth in the collection sty.SetSymbolBitmapName(bmps.Item(3).GetName()); sty.SetSymbolBitmapSize(24); //create a new variant to pass to the AddFeature method VARIANT s; s.vt = VT_DISPATCH; //set up the variant to refer to our style object s.pdispVal = sty.m_lpDispatch; //finally, call the AddFeature method and pass it the variant // parameters CMapXFeature ftr = m_ctrlMapX.GetLayers().Item("Temp" ).AddFeature(m_ctrlMapX.GetFeatureFactory().CreateSymbol(p, s)); } catch (COleDispatchException *e) { e->ReportError(); e->Delete(); } catch (COleException *e) { e->ReportError(); e->Delete(); } }
milidong :
请问显示自己的位图怎么办?wxqzhy ,非常感谢你呦
wxqzhy :
把你的位图放到CUSTSYMB目录下,调用方法和上面的一样,我想应该是没问题 |