250 likes | 361 Views
LẬP TRÌNH WINDOWS. Dialog Box Common Dialog Property Sheet. Giới thiệu. - DialogBox Common dialog Property Sheet. Giới thiệu - Common dialog. Save file dialog. Giới thiệu - Common dialog. Color dialog. Giới thiệu - Common dialog. Fonts dialog. Giới thiệu - Property Sheet.
E N D
LẬP TRÌNH WINDOWS Dialog Box Common Dialog Property Sheet
Giớithiệu • - DialogBox • Common dialog • Property Sheet
Giớithiệu- Common dialog Save file dialog
Giớithiệu- Common dialog Color dialog
Giớithiệu- Common dialog Fonts dialog
Tạoứngdụng Dialog Based bằng AppWizard • Chọn menu File → New • Chọn Tab Projects • Chọnloại project “MFC AppWizard (exe)” • Đặttên project trong ô “Project name” • Step 1: Chọnloạiứngdụng “Dialog based” • Nhấn “Finish” để kết thúc • Step 2: Chỉchọn Option “3D controls”
Dialog based - Cácthànhphầncủaứngdụng • abc.h: header file của file abc.cpp, chứa khai báo CabcApp đểquảnlýtoànbộứngdụng. LớpCabcAppkếthừatừlớpCWinAppcủa MFC • abcDlg.h: header file của file abcDlg.cpp, chứakhaibáoCabcDlg để quản lý cửa sổ Dialog giao diện của ứng dụng. • LớpCabcDlgkếthừatừlớpCDialogcủa MFC • Resource.h: header file, chửacáchằng ID củacác resource được định nghĩa trong file abc.rc • abc.cpp: cài đặt các hàm thành phần của lớp CabcApp • abc.rc: môtảcác resource củaứngdụng • abcDlg.cpp: cài đặt các hàm thành phần của lớp
Tạovàxửlý dialog Thêmmới Dialog resource Thiếtlậpthuộctính dialog KhaibáolớpCDialog Thêmcác control vào dialog Hiểnthị dialog Xửlý dialog
Khaibáolớpquảnlý dialog Bấmdoubleclickvào dialog mớihoặcbấm Ctrl + W (vào Class WiZard) => khaibáolớptươngứng
Khaibáolớpquảnlý dialog - Đặttênlớpquảnlý dialog
Property Sheet - Thêmmới Property Page Thêm mới Dialog tương ứng với mỗi Page trongResouceView Khai báo lớp xử lý tương ứng với mỗi page, kếthừatừlớpCPropertyPage Add các page vào Property Sheet
Thêmmới Property Page • Thêm mới Dialog tương ứng với mỗi Page trong • ResouceView • Khai báo lớp xử lý tương ứng với mỗi page, kếthừatừlớp • CPropertyPage • Add các page vào Property Sheet
Page 1 – Page 2 IDD_PAGE2 IDD_PAGE1
Thêmmới Property Page - Page 1 + Page 2 IDD_PAGE2 IDD_PAGE1
Thêmmới Property Page #include "MyPage1.h" #include "MyPage2.h" class CMyPropertySheet : public CPropertySheet { ….. protected: CMyPage1 m_MyPage1; CMyPage2 m_MyPage2; …. };
Add Property page vàoPropertySheet CMyPropertySheet::CMyPropertySheet(UINT nIDCaption, CWnd* pParentWnd, UINT iSelectPage) :CPropertySheet(nIDCaption, pParentWnd, iSelectPage) { AddPage(&m_MyPage1); AddPage(&m_MyPage2); } CMyPropertySheet::CMyPropertySheet(LPCTSTR pszCaption, CWnd* pParentWnd, UINT iSelectPage) :CPropertySheet(pszCaption, pParentWnd, iSelectPage) { AddPage(&m_MyPage1); AddPage(&m_MyPage2); }
Hiệnthị Property Sheet void CMyMFCDlg::OnShow() { CMyPropertySheetdlg("Sheet Page Demo", this, 0); dlg.DoModal(); } Hiểnthị “page 1” của PropertySheet
Common dialog – Open File void CMyMFCDlg::OnButton2() { CFileDialogfDlg(1,NULL,NULL, OFN_HIDEREADONLY | OFN_FILEMUSTEXIST , "C Header Files (*.h)|*.h| C++ Source Files (*.cpp)|*.cpp||"); if ( fDlg.DoModal() == IDOK) { CString s= fDlg.GetPathName(); } }