Step 1: Tạo ứng dụng MFC Window application
Step 2: Click chuột phải ở ResourceView:
Menu --> Insert Resource --> Toolbar. Đặt ID toolbar: IDR_MYTOOLBAR
thêm 4 button: IDC_TBBUTTON1, IDC_TBBUTTON2, IDC_TBBUTTON3, IDC_TBBUTTON4
25 trang |
Chia sẻ: Mr Hưng | Lượt xem: 837 | Lượt tải: 0
Bạn đang xem trước 20 trang nội dung tài liệu Lập trình Windows - Toolbar dialogbar menu bar, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
LẬP TRÌNH WINDOWSToolbarDialogBarMenu BarToolBar MFC Tutorial - Adding a ToolbarStep 1: Tạo ứng dụng MFC Window applicationStep 2: Click chuột phải ở ResourceView: Menu --> Insert Resource --> Toolbar. Đặt ID toolbar: IDR_MYTOOLBAR thêm 4 button: IDC_TBBUTTON1, IDC_TBBUTTON2, IDC_TBBUTTON3, IDC_TBBUTTON4ToolBar MFC Tutorial - Adding a ToolbarStep 3: Khai báo biến CToolBarclass CMainFrame : public CFrameWnd{.protected: CToolBar m_MyToolBar;.}ToolBar MFC Tutorial - Adding a ToolbarTrong thông điệp WM_CREATE tạo 3 bước quan trọng để load một toolbar Step 4: Gọi hàm tạo lập cửa sổ tool bar if (!m_MyToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP | CBRS_GRIPPER )){ MessageBox("Failed to create toolbar\n"); return -1;}m_MyToolBar.LoadToolBar(IDR_MYTOOLBAR);m_MyToolBar.EnableDocking(CBRS_ALIGN_ANY);EnableDocking(CBRS_ALIGN_ANY);DockControlBar(&m_MyToolBar);Step 6: Gắn Toolbar vào ứng dụngStep 5: Load resource tool bar BOOL LoadToolBar( LPCTSTR lpszResourceName );.ToolBar MFC Tutorial - Adding a ToolbarToolBar Gắn bên trên cửa sổ chínhEnableDocking(CBRS_ALIGN_TOP);DockControlBar(&m_wndDrawBox,AFX_IDW_DOCKBAR_TOP);ToolBar Gắn bên trái cửa sổ chínhEnableDocking(CBRS_ALIGN_LEFT);DockControlBar(&m_wndDrawBox,AFX_IDW_DOCKBAR_LEFT);ToolBar Hiển thị nhiều cộtToolBar Hiển thị nhiều cột//Thêm thuộc tính CBRS_SIZE_FIXED cho toolbarm_MyToolBar . SetBarStyle(m_MyToolBar .GetBarStyle() | CBRS_SIZE_FIXED); void CMainFrame::SetColumns(int nCols,CToolBar& tbToolBox){ int nColumns = nCols;int nCount = tbToolBox.GetCount();for(int i = 0; i TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON,point.x,point.y,this,NULL);}Cài đặt Right Click menuMenu - Context Menu - Right Click Popup MenuXác lập trạng thái của Item trong Popup MenuptrMenu = menu.GetSubMenu(0);//Xac lap trang thai cua cac ItemptrMenu->EnableMenuItem(IDM_OPEN,MF_GRAYED);ptrMenu->EnableMenuItem(IDM_SAVE, MF_CHECKED);ptrMenu->EnableMenuItem(IDM_EXIT, MF_ENABLED);Menu - Thêm và Huỷ MenuItemCú phápInsertMenu(nPosition, nFlags, NewID, Caption)MF_BYPOSITION: dựa vào vị tríMF_BYCOMMAND: dựa vào ID, SEPARATOR không có IDSeparatornFlags = MF_SEPARATORNewID = ANYCaption = ANYMenuItemnFlags = NoneNewID = NEWIDCaptionMenu - Thêm MenuItemvoid CMyFirstMenuView::OnPopupInsert(){CMenu *topMenu = AfxGetMainWnd()->GetMenu();CMenu *ptrMenu = topMenu->GetSubMenu(0);UINT nNewID = ID_USER_MENUITEM+m_nItem;m_nItem = m_nItem+1;ptrMenu->InsertMenu(1,MF_BYPOSITION, nNewID,"&Menu Caption");AfxGetMainWnd()->DrawMenuBar();}Menu - Thêm MenuItemvoid CMyFirstMenuView::OnPopupInsert(){// TODO: Add your command handler code hereCMenu *topMenu = AfxGetMainWnd()->GetMenu();CMenu *ptrMenu = topMenu->GetSubMenu(0);//Handle của Sub Menu(0) được lưu vào *ptrMenutopMenu->InsertMenu(1,MF_BYPOSITION,(UINT)ptrMenu->GetSafeHmenu(),"&Menu Caption");AfxGetMainWnd()->DrawMenuBar();}Menu - Xóa/Hủy menuItemvoid CMyFirstMenuView::OnPopupDelete(){CMenu *topMenu = AfxGetMainWnd()->GetMenu();topMenu->RemoveMenu(1,MF_BYPOSITION);AfxGetMainWnd()->DrawMenuBar();}Remove 1 Popup trong MainMenuMenu - Xóa/Hủy menuItemvoid CMyFirstMenuView::OnPopupDelete(){CMenu *topMenu = AfxGetMainWnd()->GetMenu();CMenu *ptrMenu = topMenu->GetSubMenu(0);ptrMenu->RemoveMenu(1,MF_BYPOSITION);AfxGetMainWnd()->DrawMenuBar();}Remove 1 Item trong Popup thứ nhất trong MainMenuDialogBarMenu - Context Menu - Right Click Popup Menuclass CMainFrame : public CFrameWnd{protected: CDialogBar m_MyDlgBar;};Thêm biến quản lý CDialogBarint CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct){ if (m_MyDlgBar.Create(this, IDD_MYDLGBAR, CBRS_TOP | CBRS_GRIPPER , IDD_MYDLGBAR)) return -1; m_MyDlgBar.EnableDocking(CBRS_ALIGN_ANY); EnableDocking(CBRS_ALIGN_ANY); DockControlBar(&m_MyDlgBar);}Tạo và hiển thị DialogBar
Các file đính kèm theo tài liệu này:
- lap_trinh_window_chuong5_0082.ppt