選單下方的工具欄,在許多的程式中都會使用。
這次的練習是快速用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...