要設定表徵圖檔案分這麼幾步:首先要定義表徵圖檔案,就是32*32或16*16大小的ICO檔案。在程式的.RC檔案下進行定義:
#define IDI_APP_ICON100(表徵圖檔案的ID號)
IDI_APP_ICON
ICON “表徵圖檔案的位置”
通常表徵圖檔案我們就放到資源檔夾中。然後我們還需要在標頭檔中定義一下:IDI_APP_ICON
equ 100.
第三步在定義視窗類別結構體時裝載表徵圖檔案:
invoke LoadIcon,NULL,IDI_APP_ICON
mov wnd.hIcon,eax
mov wnd.hIconSm,eax
首先是載入表徵圖檔案,hIcon和hIconSm都是表徵圖控制代碼,前一個是用以指定大表徵圖,後一個是用以指定小表徵圖。按MSDN的說明 hIcon中設定的表徵圖是視窗左上方視窗表徵圖 , hIconSm只是個小表徵圖,但是在實際應用中movwnd.hIcon,eax這句是可有可無的,不管有沒有這句,應用程式圖示和視窗表徵圖都不受影響,反而hiconSm是不可或缺的。(目前真不懂,如果有知道的,麻煩告訴我一下謝謝)
經過上述三步,程式表徵圖就可以更改了,如果要設定視窗表徵圖還必須在視窗建立時向視窗發送WM_SETICON訊息:
.if eax==WM_INITDIALOG
; 為此視窗建立一個表徵圖
invoke LoadIcon, hInstance, IDI_WAIN_ICON
invoke SendMessage,hWnd,WM_SETICON,ICON_BIG,eax
這裡需要注意一下,如果是CreateWindowEx產生的視窗檔案,可以直接使用上述定義的表徵圖檔案變數,但是如果是CreateDialogParam建立的對話方塊,就必須重新定義一個表徵圖檔案變數,表徵圖檔案可以一樣,但是ID號和變數名要變一下。簡單一點說:視窗檔案的程式表徵圖變數和視窗表徵圖變數定義一個就行,對話方塊的必須分別定義,表徵圖檔案可以是同一個,變數名必須不同。ICON_BIG是32*32的,,ICON_SMALL是16*16
這樣程式的這兩個表徵圖就OK了。
在RadAsm中我們可以不用在.RC檔案中定義,只需要通過 工程---資源 進行添加然後在標頭檔中等值一下就行。