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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章