定制工具按鈕圖標(biāo)
MAPINFO里面可以用的圖標(biāo)是不是太單一 我們其實可以自己畫自己喜歡的圖標(biāo):
定制工具按鈕圖標(biāo)
Include "mapbasic.def"
Declare Sub Main
Declare Sub TestDLLCall
Declare Function InitResDLL () As String
Sub Main
Dim icodll As String
icodll = InitResDLL()
Create ButtonPad "IcoTest" As
ToolButton Calling TestDLLCall
Icon 138File icodll
Cursor 136 File icodll
ToolButton Calling TestDLLCall
Icon 134File icodll
Cursor 136 File icodll
End Sub
Function InitResDLL () As String
if (SystemInfo(SYS_INFO_MIPLATFORM) = MIPLATFORM_WIN16) Then
InitResDLL = ApplicationDirectory$()+"win16\ico16.dll"
elseif (SystemInfo(SYS_INFO_MIPLATFORM) = MIPLATFORM_WIN32) Then
InitResDLL = ApplicationDirectory$()+"win32\ico32.dll"
else
Note "This application is not supported on this platform."
End Program
end if
End Function
.
其實寫這個程序的難點(diǎn)并不在于程序的本身,而是那個DLL文件的生成.
1. 圖標(biāo)文件的格式
按鈕圖標(biāo)文件在Mapbasic中有嚴(yán)格的要求.圖標(biāo)文件只能是位圖格式(BMP圖像格式),大小為小圖標(biāo)18pixles寬16pixles高,大圖標(biāo)26pixles寬24pixles高,小圖標(biāo)是用在普通按鈕上的,而大圖標(biāo)是在你在Mapinfo中選擇使用大按鈕之后才會用到.
2. DLL 文件的編輯
編輯好了圖標(biāo)文件,現(xiàn)在來把它們添加到DLL中,我們無需重新的編寫一段C語言代碼來實現(xiàn)DLL文件的生成,那樣你首先的會C語言.我說的方法是直接的利用Mapbasic例程中的DLL文件.
用資源編輯軟件打開DLL文件,將編輯好的BMP文件添加到DLL中,注意保存順序,首先是小的位圖,然后是大的位圖,在命名時要注意兩個文件必須相連,例如:小圖標(biāo)命名為138,那么大圖標(biāo)就應(yīng)該命名為139.保存DLL.這樣就好了,你只需在上面的程序代碼中修改ICON的號碼就可以看到你的圖標(biāo)文件了.
其實就是調(diào)用下外部的DLL直接在Icon 138File icodll這邊換下就好 然后定義下那個DLL文件就可以了
|