MDL中使用真彩色图标

来源:互联网 发布:恐怖相机软件 编辑:程序博客网 时间:2024/04/30 04:45

 方法1:使用rsc资源文件

制作如下的mke文件,制作成一个包含有真彩色图标的资源文件,将资源文件放到..\microstation\icons\下即可使用里面的真彩色图标,使用方法见方法2中的资源定义;

rscName=ico.rscrscFile = $(baseDir)$(rscName)BUILD_USING_NoToolset  =  1NO_COMPILERS_MKI  =  1 %include mdl.mki%include compilers.mki  filelist + "C:\Documents and Settings\Administrator\桌面\ico\Bicon.ico" filelist + "C:\Documents and Settings\Administrator\桌面\ico\Bicon1.ico" $(rscFile) : $(filelist)> $(o)filelist.opt$(filelist)<wiconpackager -o$(rscFile) @$(o)filelist.opt


 方法2:使用dll文件

用visual studio制作一个dll文件,可包含多个图标文件,将其放到..\microstation\icons\下即可使用里面的真彩色图标;

制作步骤如下:

1>新建一个dll项目

2>向项目中添加图标资源

选择导入资源:

3>打开工程中的rc资源查看并编辑各个资源的ID(在资源视图下)

 

 将ID改为文本格式:

编译……生成一个dll文件,与RSC文件的使用一样,将其放置到..\MICROSTATION\ICONS\..,如果工程中不存在DllMain函数,则会编译出错,此时可手动创建一个空的DllMain函数即可编译通过;也可以打开VC的/NOENTRY 选项,这时候dll就是一个纯资源型的dll,可以没有DLLMain了。NativeCode的mki编译设置里默认这个选项是打开的,所以Nativecode的dll是纯资源型的dll,是给ma来装载的,所以ma不过是资源(dll+图标+对话框等等)装载器而已。

MDL中r文件的真彩色图标定义方法:

在条目中即可使用它了:

如果资源是BMP位图文件,用同样的方法打包到dll里来,r文件的图标定义如下:

ICON与BMP不同的是BMP的资源定义的尺寸必须和bmp文件的尺寸一致,否则会出现严重变形的情况,而ICON则不会。建议使用windows图标来定义资源。

实例:

方法3:使用MDL的mke文件

创建、编辑一个后缀名是rc的文件,格式如下,将它和对应的ico和bmp文件一起拷贝到当前工程目录下:

制作一个mke文件如下:

NO_NTTOOLS = 1BUILD_USING_VS2005 = 1NOSTRICT = 1%include mdl.mkimaPath = $(baseDir)#------------------- -------------------------------------------+# dlmRulers.mki是编译DLM的宏设置;#------------------- ------------------------------------------+/%include  dlmRulers.mkiDLM_NAME = iconColldlmObjs = $(o)iconColl.rbj%include dlmcomp.mki $(o)iconColl.res            : $(baseDir)iconColl.rc$(o)iconColl.rbj            : $(o)iconColl.res%include dlmlink.mki

编译顺序为rc -> res -> rbj -> DLL;(res也可以直接链接入DLL,由编译、链接规则否则内部的转换)

编译规则在winntmdl.mki中已经定义。

编译后即可产生一个iconColl的dll文件,拷贝至..\MicroStation\icons\..目录下,即可使用其中id为“IC” 的图标和id为“BP”的位图。此方法最为快捷,而不用包含任何cpp、h文件和其它执行代码。

VS可以打开DLL并查看其中图标,而rsc中的图标等资源在外部不容易查看(v8i中增加了这个功能)。

1)    MDL自定义taskTools(任务工具面板)

新建一个界面文件(dgnlib)

在customize的file列表里就有了此dgnlib文件;

打开此文件,就可以编辑它了:

可以新建toolbox和tools了。

命令格式:[maName]commandName      --- maName下的commandName

Icon必须是windows图标打包的rsc文件或者dll文件,pure Mdl的位图图标不适用;

原创粉丝点击