MDL中使用真彩色图标

 方法1:使用rsc资源文件

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

rscName=ico.rsc
rscFile = $(baseDir)$(rscName)
BUILD_USING_NoToolset  =  1
NO_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 = 1

BUILD_USING_VS2005 = 1

NOSTRICT = 1

%include mdl.mki

maPath = $(baseDir)

#------------------- -------------------------------------------+

# dlmRulers.mki是编译DLM的宏设置;

#------------------- ------------------------------------------+/

%include  dlmRulers.mki

DLM_NAME = iconColl

dlmObjs = $(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的位图图标不适用;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值