; ######################################################################## Do_ToolBar PROTO :DWORD SetBmpColor PROTO :DWORD include tbmacros.asm .data hTbBmp dd 0 hToolBar dd 0 .code ; ######################################################################## Do_ToolBar proc hWin :DWORD ; --------------------------------------- ; This proc works by using macros so that ; the code is easier to read and modify ; --------------------------------------- LOCAL bSize :DWORD LOCAL tbab :TBADDBITMAP LOCAL tbb :TBBUTTON ; ------------------ ; The toolbar bitmap ; ~~~~~~~~~~~~~~~~~~ ; You must supply a bitmap for the toolbar that has the ; correct number of the required images, each of the same ; size and in the following strip bitmap form. ; ; For the bitmap to have the correct background color, there ; must be a 'path' for the FloodFill function from the top ; left corner AROUND each tool button image on the bitmap. ; ------------------------------------- ; | 1 | 2 | 3 | 4 | 5 | 6 | ; ------------------------------------- ; ------------------------ ; Uncomment following when ; bitmap has been created ; ------------------------ invoke LoadBitmap,hInstance,750 mov hTbBmp,eax ; -------------------------------------------------- ; Set toolbar button dimensions here, width & height ; -------------------------------------------------- Create_Tool_Bar 24, 24 TBextraData ; additional data for TBBUTTON structure ; ----------------------------------- ; Add toolbar buttons and spaces here ; Syntax for the macro TBbutton is ; TBbutton bmpID number, WM_COMMAND ID number ; WM_COMMAND ID numbers start at 50 ; ----------------------------------- TBblank TBbutton 0, 50 TBbutton 1, 51 TBbutton 2, 52 TBblank TBbutton 3, 53 TBblank TBbutton 4, 54 ret Do_ToolBar endp ; ######################################################################## SetBmpColor proc hBitmap:DWORD LOCAL mDC :DWORD LOCAL hBrush :DWORD LOCAL hOldBmp :DWORD LOCAL hReturn :DWORD LOCAL hOldBrush :DWORD invoke CreateCompatibleDC,NULL mov mDC,eax invoke SelectObject,mDC,hBitmap mov hOldBmp,eax invoke GetSysColor,COLOR_BTNFACE invoke CreateSolidBrush,eax mov hBrush,eax invoke SelectObject,mDC,hBrush mov hOldBrush,eax invoke GetPixel,mDC,1,1 invoke ExtFloodFill,mDC,1,1,eax,FLOODFILLSURFACE invoke SelectObject,mDC,hOldBrush invoke DeleteObject,hBrush invoke SelectObject,mDC,hBitmap mov hReturn,eax invoke DeleteDC,mDC mov eax,hReturn ret SetBmpColor endp ; #########################################################################