mao__mao_
路人甲
路人甲
  • 注册日期2004-09-19
  • 发帖数41
  • QQ
  • 铜币219枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:3670回复:17

Mo,VB转VC关于Renderer

楼主#
更多 发布于:2004-09-20 14:46
<P>我想把一段VB程序翻译成VC程序,翻译下段时遇到问题</P>
<P>Dim lyr As MapObjects2.MapLayer</P>
<P>.......</P>
<P>  Select Case True
    Case lyr.Renderer Is Nothing
      ......
    Case TypeOf lyr.Renderer Is MapObjects2.ValueMapRenderer
      .......
    Case TypeOf lyr.Renderer Is MapObjects2.ClassBreaksRenderer
      .......
  End Select</P>
<P>请问我在VC中怎么才能得知一个图层的Renderer是否为Nothing,如何得到一个图层Renderer的类型(例如,是ValueMapRenderer还是ClassBreaksRenderer)?</P>
<P>请多多指教,最好能给出关键代码,先行谢过!</P>
[此贴子已经被作者于2004-9-20 14:49:03编辑过]
喜欢0 评分0
zpgis2002
路人甲
路人甲
  • 注册日期2004-10-29
  • 发帖数83
  • QQ
  • 铜币329枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2005-12-27 10:52
潘爱民的Com原理与应用,那有买的啊
举报 回复(0) 喜欢(0)     评分
稻草人1982
路人甲
路人甲
  • 注册日期2005-07-05
  • 发帖数18
  • QQ
  • 铜币164枚
  • 威望0点
  • 贡献值0点
  • 银元0个
2楼#
发布于:2005-07-12 21:03
<P>mo自带的例子里有,仔细看看吧</P>
举报 回复(0) 喜欢(0)     评分
tony.wei
路人甲
路人甲
  • 注册日期2003-12-21
  • 发帖数62
  • QQ
  • 铜币114枚
  • 威望0点
  • 贡献值0点
  • 银元0个
3楼#
发布于:2005-01-23 01:00
解决问题了吗?
解决问题了吗?
举报 回复(0) 喜欢(0)     评分
lixaokui
路人甲
路人甲
  • 注册日期2003-12-25
  • 发帖数768
  • QQ28796446
  • 铜币27枚
  • 威望0点
  • 贡献值0点
  • 银元0个
4楼#
发布于:2004-09-27 11:48
学Com就看看潘爱民的Com原理与应用啦!
西门吹血,有了鼓风机,就不用吹啦!
举报 回复(0) 喜欢(0)     评分
mao__mao_
路人甲
路人甲
  • 注册日期2004-09-19
  • 发帖数41
  • QQ
  • 铜币219枚
  • 威望0点
  • 贡献值0点
  • 银元0个
5楼#
发布于:2004-09-27 11:00
<P>const IID IID_IValueMapRenderere = {0x9BD6A670, 0xCE75, 0x11D1,{0xAF, 0x04, 0x20, 0x4C, 0x4F, 0x4F, 0x50, 0x20}};是怎么回事啊?它就是ValueMapRenderer?这组数是怎么获得的?</P><P>那LabelRenderer,LabelPlacer,MaskColor,ZRenderer怎么表示啊?</P><P>我找了几天的资料也没弄明白,Ole View是什么东东啊?</P><P>还请高手多多指教!</P><img src="images/post/smile/dvbbs/em30.gif" />
举报 回复(0) 喜欢(0)     评分
mao__mao_
路人甲
路人甲
  • 注册日期2004-09-19
  • 发帖数41
  • QQ
  • 铜币219枚
  • 威望0点
  • 贡献值0点
  • 银元0个
6楼#
发布于:2004-09-24 10:47
<P>请恕小弟愚笨,还是不太懂。可以在QQ中加你为好友吗?</P><P>我的QQ是58349376,请注明walkly</P><img src="images/post/smile/dvbbs/em02.gif" />
举报 回复(0) 喜欢(0)     评分
walkly
路人甲
路人甲
  • 注册日期2004-02-08
  • 发帖数16
  • QQ
  • 铜币192枚
  • 威望0点
  • 贡献值0点
  • 银元0个
7楼#
发布于:2004-09-24 09:39
<P>这是以前写的,实际上各接口的UUID可以用一个函数获得(实际上是读注册表),不用往程序里写一长串的数字。但我现在用的电脑上没有MSDN,没法查。各接口的UUID可以用Ole View查看。</P>
举报 回复(0) 喜欢(0)     评分
mao__mao_
路人甲
路人甲
  • 注册日期2004-09-19
  • 发帖数41
  • QQ
  • 铜币219枚
  • 威望0点
  • 贡献值0点
  • 银元0个
8楼#
发布于:2004-09-23 22:10
<P>多谢walkly<img src="images/post/smile/dvbbs/em02.gif" /></P><P>但还真是高深啊<img src="images/post/smile/dvbbs/em05.gif" />,看不太懂</P><P>const IID IID_IValueMapRenderere = {0x9BD6A670, 0xCE75, 0x11D1,{0xAF, 0x04, 0x20, 0x4C, 0x4F, 0x4F, 0x50, 0x20}};是怎么回事啊?它就是ValueMapRenderer?这组数是怎么获得的?</P><P>那LabelRenderer,LabelPlacer,MaskColor,ZRenderer怎么表示啊?</P>
举报 回复(0) 喜欢(0)     评分
walkly
路人甲
路人甲
  • 注册日期2004-02-08
  • 发帖数16
  • QQ
  • 铜币192枚
  • 威望0点
  • 贡献值0点
  • 银元0个
9楼#
发布于:2004-09-23 16:27
<P>#define SIMPLESYMBOL  1
#define VALUERENDERER 2
#define CLASSRENDERER 3</P><P>UINT CDrawLayer::GetRendererType()
{
 //仅列出两种易于在图例上表达的着色方法
 const IID IID_IValueMapRenderere =
 {0x9BD6A670, 0xCE75, 0x11D1,
 {0xAF, 0x04, 0x20, 0x4C, 0x4F, 0x4F, 0x50, 0x20}};</P><P> const IID IID_IClassBreaksRenderer =
 {0x9BD6A676, 0xCE75, 0x11D1,
 {0xAF, 0x04, 0x20, 0x4C, 0x4F, 0x4F, 0x50, 0x20}};</P><P> LPDISPATCH lpDisp = m_layer.GetRenderer();
 if (!lpDisp)
 {
  return SIMPLESYMBOL;
 }
 else
 {
  IUnknown* pTemp;
  LPDISPATCH pDispTemp = NULL;
  HRESULT hrValue = lpDisp->QueryInterface (IID_IValueMapRenderere,
             (void**);pTemp);
  HRESULT hrClass = lpDisp->QueryInterface (IID_IClassBreaksRenderer,
             (void**);pTemp);
  lpDisp->Release ();
  lpDisp->Release ();
  
  if (SUCCEEDED(hrValue))
  {
   return VALUERENDERER;
  }
  else if (SUCCEEDED(hrClass))
  {
   return CLASSRENDERER;
  }
  else
  {
   return SIMPLESYMBOL;
  }
 }
}</P><P>以上代码尚未编译验证;</P>
举报 回复(0) 喜欢(0)     评分
上一页
游客

返回顶部