Changing the Toolbar Button State

Start with the project you created in Changing the Toolbar State

1.

Add the following popup menu to the main menu created in Changing the Toolbar State:

&Check Button
               &Brush with ID = IDM_CHECKBUTTON_BRUSH
               &Shape Polygon with ID = IDM_CHECKBUTTON_SHAPE_POLYGON
               &Fill Color with ID = IDM_CHECKBUTTON_FILL_COLORREPLACE
               &Mover with ID = IDM_CHECKBUTTON_MOVER

&Disable Button
               &Brush with ID = IDM_DISABLEBUTTON_BRUSH
               &Shape Polygon with ID = IDM_DISABLEBUTTON_SHAPE_POLYGON
               &Fill Color with ID = IDM_DISABLEBUTTON_FILL_COLORREPLACE
               &Mover with ID = IDM_DISABLEBUTTON_MOVER

&Hide Button
               &Brush with ID = IDM_HIDEBUTTON_BRUSH
               &Shape Polygon with ID = IDM_HIDEBUTTON_SHAPE_POLYGON
               &Fill Color with ID = IDM_HIDEBUTTON_FILL_COLORREPLACE
               &Mover with ID = IDM_HIDEBUTTON_MOVER

2.

Add the following code to the WndProc after "return 0L;" statement of the case IDM_SETPOSITION_TEST4 in the WM_COMMAND message:

    case IDM_CHECKBUTTON_BRUSH:
       L_TBSetButtonChecked ( pToolbar, ID_TOOL_PAINT_BRUSH ) ;
       break ;
   
    case IDM_CHECKBUTTON_SHAPE_POLYGON:
       L_TBSetButtonChecked ( pToolbar, ID_TOOL_PAINT_SHAPE_POLYGON ) ;
       break ;

    case IDM_CHECKBUTTON_FILL_COLORREPLACE:
       L_TBSetButtonChecked ( pToolbar, ID_TOOL_PAINT_FILL_COLORREPLACE ) ;
       break ;

    case IDM_CHECKBUTTON_MOVER:
       L_TBSetButtonChecked ( pToolbar, ID_TOOL_PAINT_MOVER ) ;
       break ;

    case IDM_DISABLEBUTTON_BRUSH:
       L_TBIsButtonEnabled ( pToolbar, ID_TOOL_PAINT_BRUSH, &fState ) ;

       L_TBSetButtonEnabled ( pToolbar, ID_TOOL_PAINT_BRUSH, ! fState ) ;

       CheckMenuItem ( GetMenu ( hWnd ),
          IDM_DISABLEBUTTON_BRUSH,
          MF_BYCOMMAND | ( fState ? MF_CHECKED : MF_UNCHECKED ) ) ;
       break ;

    case IDM_DISABLEBUTTON_SHAPE_POLYGON:
       L_TBIsButtonEnabled ( pToolbar, ID_TOOL_PAINT_SHAPE_POLYGON, &fState ) ;

       L_TBSetButtonEnabled ( pToolbar, ID_TOOL_PAINT_SHAPE_POLYGON, ! fState ) ;

       CheckMenuItem ( GetMenu ( hWnd ),
          IDM_DISABLEBUTTON_SHAPE_POLYGON,
          MF_BYCOMMAND | ( fState ? MF_CHECKED : MF_UNCHECKED ) ) ;

       break ;

    case IDM_DISABLEBUTTON_FILL_COLORREPLACE:
       L_TBIsButtonEnabled ( pToolbar, ID_TOOL_PAINT_FILL_COLORREPLACE, &fState ) ;

       L_TBSetButtonEnabled ( pToolbar, ID_TOOL_PAINT_FILL_COLORREPLACE, ! fState ) ;

       CheckMenuItem ( GetMenu ( hWnd ),
          IDM_DISABLEBUTTON_FILL_COLORREPLACE,
          MF_BYCOMMAND | ( fState ? MF_CHECKED : MF_UNCHECKED ) ) ;
       break ;

    case IDM_DISABLEBUTTON_MOVER:
       L_TBIsButtonEnabled ( pToolbar, ID_TOOL_PAINT_MOVER, &fState ) ;

       L_TBSetButtonEnabled ( pToolbar, ID_TOOL_PAINT_MOVER, ! fState ) ;

       CheckMenuItem ( GetMenu ( hWnd ),
          IDM_DISABLEBUTTON_MOVER,
          MF_BYCOMMAND | ( fState ? MF_CHECKED : MF_UNCHECKED ) ) ;
       break ;

    case IDM_HIDEBUTTON_BRUSH:
       L_TBIsButtonVisible ( pToolbar, ID_TOOL_PAINT_BRUSH, &fState ) ;

       L_TBSetButtonVisible ( pToolbar, ID_TOOL_PAINT_BRUSH, ! fState ) ;

       CheckMenuItem ( GetMenu ( hWnd ),
          IDM_HIDEBUTTON_BRUSH,
          MF_BYCOMMAND | ( fState ? MF_CHECKED : MF_UNCHECKED ) ) ;

       EnableMenuItem ( GetMenu ( hWnd ),
          IDM_DISABLEBUTTON_BRUSH,
          MF_BYCOMMAND | ( fState ? MF_GRAYED : MF_ENABLED ) ) ;
       break ;

    case IDM_HIDEBUTTON_SHAPE_POLYGON:
       L_TBIsButtonVisible ( pToolbar, ID_TOOL_PAINT_SHAPE_POLYGON, &fState ) ;

       L_TBSetButtonVisible ( pToolbar, ID_TOOL_PAINT_SHAPE_POLYGON, ! fState ) ;

       CheckMenuItem ( GetMenu ( hWnd ),
          IDM_HIDEBUTTON_SHAPE_POLYGON,
          MF_BYCOMMAND | ( fState ? MF_CHECKED : MF_UNCHECKED ) ) ;

       EnableMenuItem ( GetMenu ( hWnd ),
          IDM_DISABLEBUTTON_SHAPE_POLYGON,
          MF_BYCOMMAND | ( fState ? MF_GRAYED : MF_ENABLED ) ) ;
       break ;

    case IDM_HIDEBUTTON_FILL_COLORREPLACE:
       L_TBIsButtonVisible ( pToolbar, ID_TOOL_PAINT_FILL_COLORREPLACE, &fState ) ;

       L_TBSetButtonVisible ( pToolbar, ID_TOOL_PAINT_FILL_COLORREPLACE, ! fState ) ;

       CheckMenuItem ( GetMenu ( hWnd ),
          IDM_HIDEBUTTON_FILL_COLORREPLACE,
          MF_BYCOMMAND | ( fState ? MF_CHECKED : MF_UNCHECKED ) ) ;

       EnableMenuItem ( GetMenu ( hWnd ),
          IDM_DISABLEBUTTON_FILL_COLORREPLACE,
          MF_BYCOMMAND | ( fState ? MF_GRAYED : MF_ENABLED ) ) ;

       break ;

    case IDM_HIDEBUTTON_MOVER:
       L_TBIsButtonVisible ( pToolbar, ID_TOOL_PAINT_MOVER, &fState ) ;

       L_TBSetButtonVisible ( pToolbar, ID_TOOL_PAINT_MOVER, ! fState ) ;

       CheckMenuItem ( GetMenu ( hWnd ),
          IDM_HIDEBUTTON_MOVER,
          MF_BYCOMMAND | ( fState ? MF_CHECKED : MF_UNCHECKED ) ) ;

       EnableMenuItem ( GetMenu ( hWnd ),
          IDM_DISABLEBUTTON_MOVER,
          MF_BYCOMMAND | ( fState ? MF_GRAYED : MF_ENABLED ) ) ;
       break ;

3.

Compile and run the project by selecting Build->Execute tutorial.exe from the menu.