方法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的位圖圖標不適用;