Tran Ngoc Bao 67 Dai hoc Su Pham TP.HCMCác thành phần trong Property Sheet Page 1 Sheet... Tran Ngoc Bao 69 Dai hoc Su Pham TP.HCMCác thành phần trong Property Sheet... Tran Ngoc Bao 71
Trang 1Đại Học Sư Phạm Tp Hồ Chí Minh
Dialog Box Common Controls
Property Sheet
Lập trình với Common Controls
Trang 2Tran Ngoc Bao 57 Dai hoc Su Pham TP.HCM
NỘI DUNG
Lập trình với StaticText
Lập trình với Check Box
Lập trình với Radio button
Lập trình với Combobox
Lập trình với Listbox
Lập trình với Listview & Treeview
Lập trình với ActiveX control (3-party components)
Trang 3Ví dụ về lập trình với common control
Viết chương trình nhập/xuất thông tin sinh viên, học
sinh, giáo viên,…từ tập tin
Trang 4Tran Ngoc Bao 59 Dai hoc Su Pham TP.HCM
Chọn menu Project\Add to project\Components and
Controls
Thêm Windows Media Player control vào ứng dụng
Trang 5Th êm ActiveX control v ào ứng dụng
Trang 6Tran Ngoc Bao 61 Dai hoc Su Pham TP.HCM
Ứng dụng “nhúng” Windows Media Player
Trang 7X ử lý control trong dialog box - Button
Trang 8Tran Ngoc Bao 63 Dai hoc Su Pham TP.HCM
class CMediaDlg : public CDialog
{
//{{AFX_MSG(CMediaDlg)
afx_msg void OnBtnOpen();
afx_msg void OnBtnShow();
//{{AFX_MSG
}
BEGIN_MESSAGE_MAP(CMediaDlg, CDialog) //{{AFX_MSG_MAP(CMediaDlg)
ON_BN_CLICKED(IDC_BTN_OPEN, OnBtnOpen)
ON_BN_CLICKED(IDC_BTN_SHOW, OnBtnShow) //}}AFX_MSG_MAP
END_MESSAGE_MAP()
void CMediaDlg::OnBtnOpen()
{
// TODO: Add your control notification handler code here
CString strFileName = _T("C:\\Music\\Track01.MP3");
m_MediaPlayer.Open (strFileName);
}
Trang 9Tạo hàm xử lý Button Open bằng Wizard
Trang 10Đại Học Sư Phạm Tp Hồ Chí Minh
Dialog Box Common Controls
Property Sheet
Lập trình với Property Sheet
Trang 11Các thành phần trong Property Sheet
Page 1
Sheet Page 2
Trang 12Tran Ngoc Bao 67 Dai hoc Su Pham TP.HCM
Các thành phần trong Property Sheet
Page 1
Sheet
Trang 13Các thành phần trong Property Sheet
Page 2
Sheet
Trang 14Tran Ngoc Bao 69 Dai hoc Su Pham TP.HCMCác thành phần trong Property Sheet
Trang 15Thêm mới Property Sheet
Nhập tên lớp
Chọn lớp kế thừa
Trang 16Tran Ngoc Bao 71 Dai hoc Su Pham TP.HCM
Thêm mới Property Sheet (tt)
Trang 17Thêm mới Property Sheet (tt)
Trang 18Tran Ngoc Bao 73 Dai hoc Su Pham TP.HCM
Thêm mớ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ừa từ lớp CPropertyPage
Add các page vào Property Sheet
Trang 19Thêm mới Property Page
Trang 20Tran Ngoc Bao 75 Dai hoc Su Pham TP.HCM
Thêm mới Property Page
Trang 21Khai báo lớp CMyPropertySheet
class CMyPropertySheet : public CPropertySheet
#include "MyPage1.h" // Added by ClassView
#include "MyPage2.h" // Added by ClassView
Trang 22Tran Ngoc Bao 77 Dai hoc Su Pham TP.HCM
Khởi tạo CMyPropertySheet
CMyPropertySheet::CMyPropertySheet(UINT nIDCaption, CWnd*
pParentWnd, UINT iSelectPage)
:CPropertySheet(nIDCaption, pParentWnd, iSelectPage)
pParentWnd, UINT iSelectPage)
:CPropertySheet(pszCaption, pParentWnd, iSelectPage)
{
AddPage(&m_myPage1);
AddPage(&m_myPage2);
}
Trang 23Khởi tạo CMyPropertySheet
Trang 24Tran Ngoc Bao 79 Dai hoc Su Pham TP.HCM
Trang 26Tran Ngoc Bao 81 Dai hoc Su Pham TP.HCM
void CMyClass::ShowMyDlg()
{
CMyPropertySheet mySheet("Sheet Page Demo",this,0);
//Truyền giá trị cho các biến trong property sheet
int nRes = mySheet.DoModal();
Trang 27// NOTE - the ClassWizard will add and remove mapping macros here.
ON_BN_CLICKED (ID_APPLY_NOW, OnApply)
//}}AFX_MSG_MAP END_MESSAGE_MAP()
class CMyPropertySheet : public CPropertySheet
{
afx_msg void OnApply ();
}
Trang 28Tran Ngoc Bao 83 Dai hoc Su Pham TP.HCM
Trang 30Tran Ngoc Bao 85 Dai hoc Su Pham TP.HCM
UpdateData();
strHomePhone = m_strHomePhone;
…….
}
Trang 31Xử lý dữ liệu trong dialog
class CMyName : public CObject
Trang 32Tran Ngoc Bao 87 Dai hoc Su Pham TP.HCM
void CMyClass::ShowMyDlg()
{
CMyName myName;
CMyPropertySheet mySheet("Sheet Page Demo",this,0);
//Truyền giá trị cho các biến trong property sheet
Trang 33Xử lý dữ liệu trong dialog (tt)
class CMyName : public CObject
Trang 34Tran Ngoc Bao 89 Dai hoc Su Pham TP.HCM
Xử lý dữ liệu trong dialog (tt)
Trang 35Truyền và nhận dữ liệu với dialog (tt)
void CMyClass::ShowMyDlg()
{
CMyName myName;
CMyPropertySheet mySheet("Sheet Page Demo",this,0);
//Truyền giá trị cho các biến trong property sheet
Trang 36Tran Ngoc Bao 91 Dai hoc Su Pham TP.HCM
Xử lý dữ liệu trong dialog (tt)
void CMyPage1::GetData(CMyName &myName)
Trang 38Tran Ngoc Bao 93 Dai hoc Su Pham TP.HCM
Modeless Dialog Box
class CModelessDlg : public CDialog
virtual void OnOK();
virtual void OnCancel();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
Trang 39Modeless Dialog Box (tt)
ShowWindow(SW_SHOW);
} }
}
Trang 40Tran Ngoc Bao 95 Dai hoc Su Pham TP.HCM
Modeless Dialog Box – SendMessage
AfxGetMainWnd ()->SendMessage (WM_USER_APPLY, 0, (LPARAM) &my);
//AfxGetMainWnd ()->SendMessage (WM_USER_APPLY, 0, 0L);
}
Trang 41LRESULT CMainFrame::OnApply (WPARAM wParam, LPARAM lParam)
Modeless Dialog Box – SendMessage (tt)
Trang 42Tran Ngoc Bao 97 Dai hoc Su Pham TP.HCM
Modeless Dialog Box – SendMessage (tt)
#include <afxwin.h> // MFC core and standard components
#include <afxext.h> // MFC extensions
#include <afxdisp.h> // MFC Automation classes
#include <afxdtctl.h> // MFC support for Internet Explorer 4
Trang 43Modeless Dialog Box – Show & Hide
Trang 44Đại Học Sư Phạm Tp Hồ Chí Minh
Dialog Box Common Controls
Property Sheet
Lập trình với Common Dialog
Trang 45Giới thiệu về dialog – Common dialog
Open file dialog
Trang 46Tran Ngoc Bao 101 Dai hoc Su Pham TP.HCM
void CCommonDialogView::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CFileDialog fDlg( 1 ,NULL,NULL,OFN_HIDEREADONLY | OFN_FILEMUSTEXIST ,
"C Header Files (*.h)|*.h|C++ Header Files (*.hpp)|*.hpp||");
Trang 47void CCommonDialogView::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CFileDialog fDlg( 0 ,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT |
Trang 48Tran Ngoc Bao 103 Dai hoc Su Pham TP.HCMGiới thiệu về dialog – Common dialog
Color dialog
Trang 50Tran Ngoc Bao 105 Dai hoc Su Pham TP.HCMGiới thiệu về dialog – Common dialog
Fonts dialog