[分享]一些有价值的问答


【问】:原先MS7.1下的函数mdlView_createSavedViewElement在MS8.5下用哪个函数代替?
【答】:V8的View变得很复杂,需要
①建立一个ViewInfo(用mdlViewInfo_create或mdlView_createViewInfoFromView);
②用mdlViewInfo_setXXX设置所需属性;
③用mdlView_createElmdscr建立NamedView Element
④用mdlView_saveNamedElmdscr保存到Model中

已邀请:

MicroStation迷

赞同来自:

【问】:MSV8XM下可以用VS2005进行NativeCode的开发吗?
【答】:如果用到MFC Dialog时必须用VS2003,如果只用MDL Dialog是可以用VS2005的。区别PureMDL和NativeCode主要是看编译和链接程序使用的是Bentley的编译器和链接器还是用的微软的编译器和链接器,生成的是MA还是DLL+MA。

kevincb2008

赞同来自:

如果我在MSV8XM中使用了MFC Dialog,那么生成的文件个数是多少?在V82004中好像用不用都会生成三个文件,XM版有改变吗?

MicroStation迷

赞同来自:

用和XM配套的Wizard建立的项目会生成两个文件,一个是DLL,一个是MA。
而用和V8-2004配套的Wizard建立的项目会生成三个文件,两个DLL,一个MA。

kevincb2008

赞同来自:

XM中无论用不用MFC的东西都是一样的吗?

MicroStation迷

赞同来自:

是的。XM中用不用MFC都只生成两个文件(DLL+MA)。但如果不用MFC可以在VS2003下开发,也可以在VS2005下开发。

MicroStation迷

赞同来自:

【问】:V8下如何通过MDL参考Raster文件?
【答】:大致步骤如下:①mdlRaster_initialize初始化RasterManager;②mdlRaster_fileOpen打开一个光栅文件并返回一个DgnRasterP句柄;③用mdlRaster_geoReferenceInfoSet设置具体位置,用mdlRaster_renderingInfoSet设置显示属性,用mdlRaster_extendedInfoSet设置扩展属性,主要是extendedInfo.attachMode = ATTACH_REFERENCE;④mdlRaster_terminate完成对RasterAPI的调用。
 

MicroStation迷

赞同来自:

【问】:如何通过程序修改元素的Snappable属性?mdlElement_setSymbology和mdlElement_setProperties中都找不到呀。
【答】:确实如此。MDL API中还真没有找到合适的函数,那只好直接修改了。代码如下:
MSElement el;
// 得到el的代码
el.hdr.dhdr.props.b.s = 0; // 0=snappable, 1=nonsnappable
mdlElement_rewrite (...);

Mstn的MSElement的详细结构体参见mselems.h头文件。

MicroStation迷

赞同来自:

【问】:用mdlDialog_textPDMItemInsert插入一个下拉菜单条目后如何获取该条目的指针?
        【答】:请用mdlDialog_textPDMItemIns来插入下拉菜单条目,其中的第一个参数能返回该条目的指针。这个新的MDL API函数取代了原来的mdlDialog_textPDMItemInsert。

MicroStation迷

赞同来自:

【问】:定义菜单资源时看到那个accelerator总是被设置为NOACCEL,表示无快捷键定义,那我想定义快捷键应当如何写呢?
        【答】:定义快捷键Ctrl+Z时可写成VBIT_KEY|'Z',关于各种功能键的定义请参见keys.h文件。


MicroStation迷

赞同来自:

【问】:如何快速隐藏指定视图中的所有元素?
【答】:通过Displayset(显示集)可以。具体代码如下:
void hideAllElementsQuickly (int viewIndex)
{
   if (mdlView_isVisible (viewIndex))
   {
      mdlDisplaySet_clear (FALSE);
      mdlView_setDisplayControl (VIEWCONTROL_DISPLAYSET, viewIndex, TRUE);
      mdlView_updateSingle (viewIndex);
   }
}


MSFans - IT难,70后,ms发烧友,高烧未退。

赞同来自:

沉了,ding……

zhj008cs

赞同来自:

> MicroStation迷 发表于 2008-8-1 13:53 forum.php?mod=redirect&goto=findpost&pid=221&ptid=19
【问】:定义菜单资源时看到那个accelerator总是被设置为NOACCEL,表示无快捷键定义,那我想定义快捷键应当 ...


:)学习了,感谢分享

要回复问题请先登录注册