Start with the project you created in Changing the Toolbar State
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
Add the following code to the WndProc after the 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 ;
Compile and run the project by selecting Build->Execute tutorial.exe from the menu.