mapx 创建使用位图样式的符号例程。

/*
MapInfo Products Knowledge Base
Product: MapX
Version: 3.x
Platform: All Win32 Platforms
Category: C++
Summary:
C++ sample code showing how to create a point and use the BitmapSymbols collection.
Question:
Is there any C++ sample code showing how to use the BitmapSymbols collection?
Answer:
This code, in the OnToolUsed event, will create a symbol feature in a layer called "Temp" using a bitmap symbol.
*/


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();
}

}


// Last Modified: 1999-04-09 14:52:47
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值