Menu Bar toolbar Status Bar
Menu Bar
CMenu encapsulates the menu handle and related menu APIs
1.1 add resources
1.2 Add a menu in the CMainFrame: OnCreate function; CMenu: Attach -- Attach the menu handle to the menu object; CMenu: Detach -- Detach the menu handle from the menu object
1.3 command-related ON_COMMAND
1.4 The status ON_UPDATE_COMMAND_UI CCmdUI class of the menu item
Toolbar
Tool bar related class CToolBarCtrl -- the parent class is CWnd, which encapsulates information about the Toolbar Control and APIs. CToolBar -- parent class CControlBar, which encapsulates the relationship between ToolBar and CFrameWnd.
2.1 Create a toolbar CToolBar: Create/Ex
2.2 load Toolbar
2.3 The CToolBar: EnableDocking of the toolbar allows you to dock. The CFrameWnd: EnableDocking setting window allows you to dock. The CFrameWnd: DockControlBar sets the position of the dock.
2.4 command processing
2.5 display and hide of the toolbar CFrameWnd: ShowControlBar
2.6 The style CBRS_TOOLTIPS is added to the information prompt; the prompt information is set.
Status Bar
Status Bar-related class CStatusBarCtrl -- the parent class is CWnd, which encapsulates information about StatusBars and APIs. CStatusBar-the parent class CControlBar, which encapsulates the relationship between the status bar and the window.
3.1 Create status bar CStatusBar: Create/Ex
3.2 set the status bar indicator CStatusBar: SetIndicators
3.3 set or obtain the status bar information CStatusBar: SetPaneText, CStatusBar: GetPaneText
Instance
[Cpp]
# Include "stdafx. h"
# Include "Resource. h"
UINT g_nIndicators [] =
{
0,
IDS_TIME,
ID_INDICATOR_CAPS,
ID_INDICATOR_NUM,
ID_INDICATOR_SCRL
};
Class CMainFrame: public CFrameWnd
{
Public:
DECLARE_MESSAGE_MAP ()
Afx_msg int OnCreate (maid); // menu bar, toolbar, status bar creation and Loading
// Menu bar Message Processing Function
Afx_msg void OnExit ();
Afx_msg void OnOpen ();
Afx_msg void OnUpdateUIOpen (CCmdUI * pCmdUI );
// Toolbar Message Processing Function
Afx_msg void OnViewStandard ();
Afx_msg void OnUpdateUIStandard (CCmdUI * pCmdUI );
// Status bar Message Processing Function
Afx_msg void OnTimer (UINT nIDEvent );
Afx_msg void OnMouseMove (UINT nFlags, CPoint point );
Private:
CToolBar mWndToolBar;
CStatusBar mWndStatusBar;
};
BEGIN_MESSAGE_MAP (CMainFrame, CFrameWnd)
ON_WM_CREATE ()
ON_COMMAND (ID_OPEN, OnOpen)
ON_COMMAND (ID_EXIT, OnExit)
ON_UPDATE_COMMAND_UI (ID_OPEN, OnUpdateUIOpen)
ON_COMMAND (ID_VIEW_STANDARD, OnViewStandard)
ON_UPDATE_COMMAND_UI (ID_VIEW_STANDARD, OnUpdateUIStandard)
ON_WM_TIMER ()
ON_WM_MOUSEMOVE ()
END_MESSAGE_MAP ()
Int CMainFrame: OnCreate (maid)
{
// Add menu
CMenu menu;
Menu. LoadMenuW (IDR_MAINFRAME); // load menu Resources
SetMenu (& menu); // set the menu to the window
Menu. Detach (); // separates the menu handle from the menu object
// Add a toolbar
MWndToolBar. CreateEx (this, TBSTATE_CHECKED, WS_CHILD | WS_VISIBLE | CBRS_ALIGN_ANY | CBRS_TOOLTIPS );
MWndToolBar. LoadToolBar (IDR_MAINFRAME); // load the toolbar
// Dock the toolbar
MWndToolBar. EnableDocking (CBRS_ALIGN_ANY); // 1. Set the toolbar to allow access
EnableDocking (CBRS_ALIGN_ANY); // you can set the frame window to be docked.
DockControlBar (& mWndToolBar, AFX_IDW_DOCKBAR_TOP); // dock to the toolbar
MWndToolBar. SetWindowTextW (L "Standard toolbar"); // you can specify the title of the toolbar.
// Create a status bar
MWndStatusBar. CreateEx (this );
MWndStatusBar. SetIndicators (g_nIndicators, sizeof (g_nIndicators)/sizeof (UINT); // set the indicator
SetTimer (, NULL); // start the timer
Return 0;
}
Void CMainFrame: OnOpen ()
{
MessageBox (L "OnOpen ");
}
Void CMainFrame: OnExit ()
{
MessageBox (L "OnExit ");
// PostQuitMessage (0 );
}
Void CMainFrame: OnUpdateUIOpen (CCmdUI * pCmdUI)
{
PCmdUI-> SetCheck ();
PCmdUI-> SetRadio ();
PCmdUI-> SetText (L "Open ");
}
Void CMainFrame: OnViewStandard ()
{
If (mWndToolBar. IsWindowVisible ())
{
ShowControlBar (& mWndToolBar, FALSE, FALSE );
}
Else
{
ShowControlBar (& mWndToolBar, TRUE, FALSE );
}
}
Void CMainFrame: OnUpdateUIStandard (CCmdUI * pCmdUI)
{
PCmdUI-> SetCheck (mWndToolBar. IsVisible ());
}
Void CMainFrame: OnTimer (UINT nIDEvent)
{
CTime t = CTime: GetCurrentTime ();
CString strTime = t. Format ("% Y-% m-% d % H: % M: % S ");
MWndStatusBar. SetPaneText (1, strTime );
}
Void CMainFrame: OnMouseMove (UINT nFlags, CPoint point)
{
CString strPt;
StrPt. Format (L "coordinates: X = % d, Y = % d", point. x, point. y );
MWndStatusBar. SetPaneText (0, strPt );
}
Class MFCMenu: public CWinApp
{
Public:
Virtual BOOL InitInstance ();
};
BOOL MFCMenu: InitInstance ()
{
CMainFrame * pFrame = new CMainFrame;
PFrame-> Create (NULL, L "MFCMenue ");
// PFrame-> Create (NULL, L "MFCToolbar", WS_OVERLAPPEDWINDOW, CFrameWnd: rectDefault, NULL, MAKEINTRESOURCE (IDR_MAINFRAME ));
M_pMainWnd = pFrame;
PFrame-> ShowWindow (SW_SHOW );
PFrame-> UpdateWindow ();
Return TRUE;
}
MFCMenu theApp;
# Include "stdafx. h"
# Include "Resource. h"
UINT g_nIndicators [] =
{
0,
IDS_TIME,
ID_INDICATOR_CAPS,
ID_INDICATOR_NUM,
ID_INDICATOR_SCRL
};
Class CMainFrame: public CFrameWnd
{
Public:
DECLARE_MESSAGE_MAP ()
Afx_msg int OnCreate (maid); // menu bar, toolbar, status bar creation and Loading
// Menu bar Message Processing Function
Afx_msg void OnExit ();
Afx_msg void OnOpen ();
Afx_msg void OnUpdateUIOpen (CCmdUI * pCmdUI );
// Toolbar Message Processing Function
Afx_msg void OnViewStandard ();
Afx_msg void OnUpdateUIStandard (CCmdUI * pCmdUI );
// Status bar Message Processing Function
Afx_msg void OnTimer (UINT nIDEvent );
Afx_msg void OnMouseMove (UINT nFlags, CPoint point );
Private:
CToolBar mWndToolBar;
CStatusBar mWndStatusBar;
};
BEGIN_MESSAGE_MAP (CMainFrame, CFrameWnd)
ON_WM_CREATE ()
ON_COMMAND (ID_OPEN, OnOpen)
ON_COMMAND (ID_EXIT, OnExit)
ON_UPDATE_COMMAND_UI (ID_OPEN, OnUpdateUIOpen)
ON_COMMAND (ID_VIEW_STANDARD, OnViewStandard)
ON_UPDATE_COMMAND_UI (ID_VIEW_STANDARD, OnUpdateUIStandard)
ON_WM_TIMER ()
ON_WM_MOUSEMOVE ()
END_MESSAGE_MAP ()
Int CMainFrame: OnCreate (maid)
{
// Add menu
CMenu menu;
Menu. LoadMenuW (IDR_MAINFRAME); // load menu Resources
SetMenu (& menu); // set the menu to the window
Menu. Detach (); // separates the menu handle from the menu object
// Add a toolbar
MWndToolBar. CreateEx (this, TBSTATE_CHECKED, WS_CHILD | WS_VISIBLE | CBRS_ALIGN_ANY | CBRS_TOOLTIPS );
MWndToolBar. LoadToolBar (IDR_MAINFRAME); // load the toolbar
// Dock the toolbar
MWndToolBar. EnableDocking (CBRS_ALIGN_ANY); // 1. Set the toolbar to allow access
EnableDocking (CBRS_ALIGN_ANY); // you can set the frame window to be docked.
DockControlBar (& mWndToolBar, AFX_IDW_DOCKBAR_TOP); // dock to the toolbar
MWndToolBar. SetWindowTextW (L "Standard toolbar"); // you can specify the title of the toolbar.
// Create a status bar
MWndStatusBar. CreateEx (this );
MWndStatusBar. SetIndicators (g_nIndicators, sizeof (g_nIndicators)/sizeof (UINT); // set the indicator
SetTimer (, NULL); // start the timer
Return 0;
}
Void CMainFrame: OnOpen ()
{
MessageBox (L "OnOpen ");
}
Void CMainFrame: OnExit ()
{
MessageBox (L "OnExit ");
// PostQuitMessage (0 );
}
Void CMainFrame: OnUpdateUIOpen (CCmdUI * pCmdUI)
{
PCmdUI-> SetCheck ();
PCmdUI-> SetRadio ();
PCmdUI-> SetText (L "Open ");
}
Void CMainFrame: OnViewStandard ()
{
If (mWndToolBar. IsWindowVisible ())
{
ShowControlBar (& mWndToolBar, FALSE, FALSE );
}
Else
{
ShowControlBar (& mWndToolBar, TRUE, FALSE );
}
}
Void CMainFrame: OnUpdateUIStandard (CCmdUI * pCmdUI)
{
PCmdUI-> SetCheck (mWndToolBar. IsVisible ());
}
Void CMainFrame: OnTimer (UINT nIDEvent)
{
CTime t = CTime: GetCurrentTime ();
CString strTime = t. Format ("% Y-% m-% d % H: % M: % S ");
MWndStatusBar. SetPaneText (1, strTime );
}
Void CMainFrame: OnMouseMove (UINT nFlags, CPoint point)
{
CString strPt;
StrPt. Format (L "coordinates: X = % d, Y = % d", point. x, point. y );
MWndStatusBar. SetPaneText (0, strPt );
}
Class MFCMenu: public CWinApp
{
Public:
Virtual BOOL InitInstance ();
};
BOOL MFCMenu: InitInstance ()
{
CMainFrame * pFrame = new CMainFrame;
PFrame-> Create (NULL, L "MFCMenue ");
// PFrame-> Create (NULL, L "MFCToolbar", WS_OVERLAPPEDWINDOW, CFrameWnd: rectDefault, NULL, MAKEINTRESOURCE (IDR_MAINFRAME ));
M_pMainWnd = pFrame;
PFrame-> ShowWindow (SW_SHOW );
PFrame-> UpdateWindow ();
Return TRUE;
}
MFCMenu theApp;
Resources in the menu bar
[Cpp]
//////////////////////////////////////// /////////////////////////////////////
// Bitmap
IDR_MAINFRAME BITMAP "res \ toolbar1.bmp"
//////////////////////////////////////// /////////////////////////////////////
// Toolbar
IDR_MAINFRAME TOOLBAR 16, 15
BEGIN
BUTTON ID_OPEN
BUTTON ID_EXIT
SEPARATOR
BUTTON ID_EDIT_COPY
BUTTON ID_EDIT_PASTE
SEPARATOR
BUTTON ID_APP_ABOUT
END
//////////////////////////////////////// /////////////////////////////////////
// Menu
IDR_MAINFRAME MENU
BEGIN
POPUP "file (& F )"
BEGIN
MENUITEM "open (& O)", ID_OPEN
MENUITEM "exit (& X)", ID_EXIT
END
POPUP "View (& V )"
BEGIN
POPUP "toolbar (& T )"
BEGIN
MENUITEM "Standard (& S)", ID_VIEW_STANDARD
END
END
END
//////////////////////////////////////// /////////////////////////////////////
STRINGTABLE
BEGIN
IDS_TIME ""
END
//////////////////////////////////////// /////////////////////////////////////
// Bitmap
IDR_MAINFRAME BITMAP "res \ toolbar1.bmp"
//////////////////////////////////////// /////////////////////////////////////
// Toolbar
IDR_MAINFRAME TOOLBAR 16, 15
BEGIN
BUTTON ID_OPEN
BUTTON ID_EXIT
SEPARATOR
BUTTON ID_EDIT_COPY
BUTTON ID_EDIT_PASTE
SEPARATOR
BUTTON ID_APP_ABOUT
END
//////////////////////////////////////// /////////////////////////////////////
// Menu
IDR_MAINFRAME MENU
BEGIN
POPUP "file (& F )"
BEGIN
MENUITEM "open (& O)", ID_OPEN
MENUITEM "exit (& X)", ID_EXIT
END
POPUP "View (& V )"
BEGIN
POPUP "toolbar (& T )"
BEGIN
MENUITEM "Standard (& S)", ID_VIEW_STANDARD
END
END
END
//////////////////////////////////////// /////////////////////////////////////
STRINGTABLE
BEGIN
IDS_TIME ""
END running result: