Start with the project you created in Implementing Toolbars - Initializing, Creating and Freeing.
Create the following Menus in ToolbarTutorial.rc:
&View&Toolbar with ID = IDM_VIEW_TOOLBAR&Rows&1 with ID = IDM_ROWS_1&2 with ID = IDM_ROWS_2&3 with ID = IDM_ROWS_3&4 with ID = IDM_ROWS_4&5 with ID = IDM_ROWS_5&6 with ID = IDM_ROWS_6&8 with ID = IDM_ROWS_8&Set PositionTest &1 with ID = IDM_SETPOSITION_TEST1Test &2 with ID = IDM_SETPOSITION_TEST2Test &3 with ID = IDM_SETPOSITION_TEST3Test &4 with ID = IDM_SETPOSITION_TEST4
Add the following function calls to the WndProc function definition, after the L_TBSetVisible function call in the WM_CREATE message:
CheckMenuItem ( GetMenu ( hWnd ),IDM_VIEW_TOOLBAR,MF_BYCOMMAND | MF_CHECKED ) ;CheckMenuRadioItem ( GetMenu ( hWnd ),IDM_ROWS_1,IDM_ROWS_8,IDM_ROWS_1,MF_BYCOMMAND ) ;CheckMenuRadioItem ( GetMenu ( hWnd ),IDM_SETPOSITION_TEST1,IDM_SETPOSITION_TEST4,IDM_SETPOSITION_TEST1,MF_BYCOMMAND ) ;
Add the following functions before the WndProc function definition:
static L_VOID OnViewToolbar ( pTOOLBARHANDLE pToolbar ){L_BOOL bVisible ;L_TBIsVisible ( pToolbar, &bVisible ) ;L_TBSetVisible ( pToolbar, ! bVisible ) ;}static L_VOID OnRows ( pTOOLBARHANDLE pToolbar, L_INT nRows ){L_TBSetRows ( pToolbar, nRows ) ;}static L_VOID OnSetPoistionTest ( HWND hWnd, pTOOLBARHANDLE pToolbar, L_INT nTest ){RECT rcClient ;POINT pt ;GetClientRect ( hWnd, &rcClient ) ;switch ( nTest ){case 1:pt.x = rcClient.left ;pt.y = rcClient.top ;ClientToScreen ( hWnd, &pt ) ;L_TBSetPosition ( pToolbar, &pt, TOOLBAR_POSITION_TOP | TOOLBAR_POSITION_LEFT ) ;break ;case 2:pt.x = rcClient.right ;pt.y = rcClient.top ;ClientToScreen ( hWnd, &pt ) ;L_TBSetPosition ( pToolbar, &pt, TOOLBAR_POSITION_TOP | TOOLBAR_POSITION_RIGHT ) ;break ;case 3:pt.x = rcClient.right ;pt.y = rcClient.bottom ;ClientToScreen ( hWnd, &pt ) ;L_TBSetPosition ( pToolbar, &pt, TOOLBAR_POSITION_BOTTOM | TOOLBAR_POSITION_RIGHT ) ;break ;case 4:pt.x = rcClient.left ;pt.y = rcClient.bottom ;ClientToScreen ( hWnd, &pt ) ;L_TBSetPosition (pToolbar, &pt, TOOLBAR_POSITION_BOTTOM | TOOLBAR_POSITION_LEFT);break ;}}
Add the following variable declaration in the WndProc function after static pTOOLBARHANDLE pToolbar ; declaration:
L_BOOL fState ; Add the following code to the WndProc function definition after the return 0L ; statement in the case WM_DESTROY message:
case WM_COMMAND:{switch ( LOWORD ( wParam ) ){case IDM_VIEW_TOOLBAR:OnViewToolbar ( pToolbar ) ;L_TBIsVisible ( pToolbar, &fState ) ;CheckMenuItem ( GetMenu ( hWnd ),IDM_VIEW_TOOLBAR,MF_BYCOMMAND | ( fState ? MF_CHECKED : MF_UNCHECKED ) ) ;return 0L ;case IDM_ROWS_1:OnRows ( pToolbar, 1 ) ;CheckMenuRadioItem ( GetMenu ( hWnd ),IDM_ROWS_1,IDM_ROWS_8,IDM_ROWS_1,MF_BYCOMMAND ) ;return 0L ;case IDM_ROWS_2:OnRows ( pToolbar, 2 ) ;CheckMenuRadioItem ( GetMenu ( hWnd ),IDM_ROWS_1,IDM_ROWS_8,IDM_ROWS_2,MF_BYCOMMAND ) ;return 0L ;case IDM_ROWS_3:OnRows ( pToolbar, 3 ) ;CheckMenuRadioItem ( GetMenu ( hWnd ),IDM_ROWS_1,IDM_ROWS_8,IDM_ROWS_3,MF_BYCOMMAND ) ;return 0L ;case IDM_ROWS_4:OnRows ( pToolbar, 4 ) ;CheckMenuRadioItem ( GetMenu ( hWnd ),IDM_ROWS_1,IDM_ROWS_8,IDM_ROWS_4,MF_BYCOMMAND ) ;return 0L ;case IDM_ROWS_5:OnRows ( pToolbar, 5 ) ;CheckMenuRadioItem ( GetMenu ( hWnd ),IDM_ROWS_1,IDM_ROWS_8,IDM_ROWS_5,MF_BYCOMMAND ) ;return 0L ;case IDM_ROWS_6:OnRows ( pToolbar, 6 ) ;CheckMenuRadioItem ( GetMenu ( hWnd ),IDM_ROWS_1,IDM_ROWS_8,IDM_ROWS_6,MF_BYCOMMAND ) ;return 0L ;case IDM_ROWS_8:OnRows ( pToolbar, 7 ) ;CheckMenuRadioItem ( GetMenu ( hWnd ),IDM_ROWS_1,IDM_ROWS_8,IDM_ROWS_8,MF_BYCOMMAND ) ;return 0L ;case IDM_SETPOSITION_TEST1:OnSetPoistionTest ( hWnd, pToolbar, 1 ) ;CheckMenuRadioItem ( GetMenu ( hWnd ),IDM_SETPOSITION_TEST1,IDM_SETPOSITION_TEST4,IDM_SETPOSITION_TEST1,MF_BYCOMMAND ) ;return 0L ;case IDM_SETPOSITION_TEST2:OnSetPoistionTest ( hWnd, pToolbar, 2 ) ;CheckMenuRadioItem ( GetMenu ( hWnd ),IDM_SETPOSITION_TEST1,IDM_SETPOSITION_TEST4,IDM_SETPOSITION_TEST2,MF_BYCOMMAND ) ;return 0L ;case IDM_SETPOSITION_TEST3:OnSetPoistionTest ( hWnd, pToolbar, 3 ) ;CheckMenuRadioItem ( GetMenu ( hWnd ),IDM_SETPOSITION_TEST1,IDM_SETPOSITION_TEST4,IDM_SETPOSITION_TEST3,MF_BYCOMMAND ) ;return 0L ;case IDM_SETPOSITION_TEST4:OnSetPoistionTest ( hWnd, pToolbar, 4 ) ;CheckMenuRadioItem ( GetMenu ( hWnd ),IDM_SETPOSITION_TEST1,IDM_SETPOSITION_TEST4,IDM_SETPOSITION_TEST4,MF_BYCOMMAND ) ;return 0L ;}}break ;
Compile and run the project by selecting Build->Execute tutorial.exe from the menu.
Getting and Setting Toolbar Information