首先创建一个普通窗口(不是对话框),不带菜单,只有工具栏。在
消息循环WM_CREATE中,使用CreateToolbarEx专用函数,能很好创建。
书中说也可以使用CreateWindowEx来逐步创建,可是位图上不去,自己抠
了一周,请高手指点。
CreateWindowEx逐步创建,下面是我创建的片段
ID_BITMAP equ 300
.const
szToolbarWindow32 db 'ToolbarWindow32',0
proc uses ebx edi esi,hWnd,uMsg,wParam,lParam
local @TBADDBITMAP:TBADDBITMAP
.if eax == WM_CREATE
invoke CreateWindowEx,NULL,offset szToolbarWindow32,\
NULL,WS_VISIBLE or WS_CHILD or CCS_NORESIZE \
or TBSTYLE_TOOLTIPS or CCS_ADJUSTABLE,10,10,390,50,\
hWnd,ID_EDIT,hInstance,NULL
mov hToolbar,eax
pop hInstance (模块句柄)
push @TBADDBITMAP.hInst
mov eax,ID_BITMAP (位图ID)
mov @TBADDBITMAP.hID,eax
invoke SendMessage,hToolbar,TB_ADDBITMAP,10,addr @TBADDBITMAP
;*********************我怀疑这句,是不是我写的有问题?
invoke SendMessage,hToolbar,TB_SETBITMAPSIZE,36,36 + 36 shl 16
invoke SendMessage,hToolbar,TB_SETBUTTONSIZE,36,36 + 36 shl 16
invoke SendMessage,hToolbar,TB_BUTTONSTRUCTSIZE,sizeof TBBUTTON,0
invoke SendMessage,hToolbar,TB_ADDBUTTONS,10,offset stToolbar
;******************片段到此
逐步创建,什么都能上去,就是位图上不去,在线等......
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)