win32強化練習4 5 標準工具欄的使用

2021-07-24 22:26:46 字數 1749 閱讀 6293

選單下方的工具欄,在許多的程式中都會使用。

這次的練習是快速用win32 sdk建立乙個可以使用的工具欄,為了方便練習,先從標準的工具欄入手。

步驟如下:

1. 必須先包含標頭檔案:

2. 宣告全域性變數 hwnd h*******;

3. 使用createwindowex建立工具欄的視窗(牆面)

4. 準備好要用的圖(海報,這個圖是很大的,需要裁減),這是個結構體tbaddbitmap,指定要用的圖以及用大圖1還是小圖0

5. 將圖用sendmessage的tb_addbitmap訊息將圖指定給工具欄;

6. 使用ttbutton建立按鈕的陣列,給每個按鈕的屬性賦值,包括id,使用的圖的編號,可用狀態和風格等

7. 注意:如果使用createwindow建立的工具欄,需要指定ttbutton的大小,要用到tb_buttonstructsize訊息

8. 將按鈕(已經設定好的)指定給工具欄,ok,並可以傳送訊息尺寸自動autosize

9.  處理wm_command訊息

**如下:

1.

#include
2. 

hwnd h*******;
3. 

h******* = createwindow(*******classname,null,ws_child| 

ws_visible|ws_border,0,0,0,0, hwnd ,(hmenu)100312,g_hinst,null);

4.&5.

tbaddbitmap tbitmap;

tbitmap.hinst = hinst_commctrl; //標準工具欄

tbitmap.nid = 0; //0是小圖,1是大圖

sendmessage(h*******, tb_addbitmap, 0, (lparam)&tbitmap);

6. 

tbbutton tb[2];

tb[0].ibitmap = std_filenew; //使用圖編號6

tb[0].fsstate = tbstate_enabled;

tb[0].fsstyle = tbstyle_button;

tb[0].idcommand = 10038; //指定id

tb[1].ibitmap = 1; //使用圖編號1- copy

tb[1].fsstate = tbstate_enabled;

tb[1].fsstyle = tbstyle_button;

7. 

sendmessage(h*******, tb_buttonstructsize, (wparam)sizeof(tbbutton),0); //必須指定結構體大小
8. 

sendmessagea(h*******,tb_autosize,0,0);

sendmessage(h*******, tb_addbuttons, (wparam)2, (lparam)&tb);
9. 

switch(loword(wparam))

這樣乙個標準工具欄就形成了,至於工具欄的訊息會比較特殊一些,如果有需要再去學習,一般的用途已經可以實現了~

win32強化練習4 0 資源相關練習簡介

第4部分,我們對資源進行強化練習!資源簡單的講有abcdimst這幾類,這當然不包括全部,其中 a accelerator 快捷鍵 b bitmap 位圖 c cursor 游標 d dialog 對話方塊 i icon 圖示 m menu 選單 s stringtable 字串表 t 工具欄 我們...

win32強化練習0 1 開發環境搭建

所謂win32,即32位的 windows 作業系統下 windows 早期是16 位的,稱為 win16 而 32位的就稱為 win32 win32 向下相容 win16。而所謂 applicationprogramminginte ce api 即應用程式介面 api是作業系統提供的介面,舉例來...

win32強化練習4 7 快速建立TreeView

這一節的練習就是快速建立乙個treevew,我們分成2步來完成,第1步是用win32 sdk,第2步是自己封裝類來簡化操作。首先是win32 sdk建立乙個treeview 1.包含標頭檔案 include 2.宣告hwnd htreeview後,使用createwindow建立乙個treeview...