5.1. Thoát-Exit
Cú pháp-Syntax OnOK();
5.2. GetDlgItem
Mục đích-
Purpose - Trả về con trỏ chỉ đến một Control hoặc cửa sổ con trong một Dialog hoặc 1 cửa sổ khác có chỉ số nID.
Mô hình-Model ID của Điều khiển GetDlgItem Con trỏ
Cú pháp-Syntax
virtual CWnd* GetDlgItem( int nID
) const;
virtual void GetDlgItem( int nID,
HWND* phWnd
) const;
5.3. ShowWindow
Mô hình-Model
UpdateData TRUE (Đúng)
Điều khiển Biến UpdateData FALSE (Sai)
Điều khiển Biến
Cú pháp-Syntax BOOL UpdateData(BOOL bSaveAndValidate)
5.4. UpdateData
Mô hình-Model
UpdateData TRUE (Đúng)
Điều khiển Biến UpdateData FALSE (Sai)
Điều khiển Biến
Cú pháp-Syntax BOOL UpdateData(BOOL bSaveAndValidate) Lập trình-
Progarmming * - Hàm Cập nhật Button trong quá trình thực thi (Lớp CWnd)IsWindowEnabled(): Hàm trả về khác 0 nếu cửa sổ :Enable. BOOL IsWindowEnabled( ) const;
- Hàm EnableWindow(): Enable (TRUE) hoặc Disable (FALSE) một cửa sổ. BOOL EnableWindow(
BOOL bEnable = TRUE ); - Ví dụ-Example: CButton* pButton2=(CButton*)GetDlgItem(IDC_BUTTON2); if(pButton2->IsWindowEnabled()) pButton2->EnableWindow(FALSE); else pButton2->EnableWindow(TRUE);
- Hàm IsWindowVisibled(): hàm trả về khác 0 nếu cửa sổ Visible. BOOL IsWindowVisible( ) const;
- Hàm ShowWindow(): Đặt trạng thái Visible của cửa sổ (SW_HIDE:ẩn cửa sổ, SW_SHOW: hiện cửa sổ) BOOL ShowWindow( int nCmdShow ); - Ví dụ-Example: CButton* pButton3=(CButton*)GetDlgItem(IDC_BUTTON3); if(pButton3->IsWindowVisible()) pButton3->ShowWindow(SW_HIDE); else pButton3->ShowWindow(SW_SHOW);
- Hàm SetWindowText(): Đặt tiêu đề cho một cửa sổ. void SetWindowText(
LPCTSTR lpszString
);
· Hàm GetWindowText(): Sao chép nội dung tiêu đề của cửa sổ và chứa vào thành phần thuộc kiểu chuỗi (LPTSTR hoặc CString)
int GetWindowText( LPTSTR lpszStringBuf, int nMaxCount ) const; void GetWindowText( CString& rString ) const; - Ví dụ-Example:
CButton* pButton4=(CButton*)GetDlgItem(IDC_BUTTON4); pButton4->SetWindowText("Nut 4");
Đồ họa-Graphic Vẽ hình-Draw
Tạo lớp CDiem
- Click chọn menu > chọn New Class. - Sau đó xuất hiện hộp thoại New Class:
+ Chọn loại lớp là Generic Class ở hộp . + Nhập tên lớp ở hộp .
+ Nhập lớp kế thừa là CObject ở mục . + Nhập phạm vi là public ở mục .
- Vào lớp CDiem.h, nhập nội dung sau vào phần public: CPoint m1,m2; //Khai bao 2 diem
int mShape; //Bien loai hinh int mWidth; //Bien do day COLORREF color; //Bien mau
Lớp Doc.h
- Nhập nội dung sau vào phần //Attributes:
CPoint mOld, mCur; //Khai bao 2 diem CObArray mDS; //Tao mang danh sach int mShape; //Bien loai hinh
int mWidth; //Bien do day
sCOLORREF mColor; //Bien mau Sự kiện
WM_LbuttonDown của lớp View
CVehinhDoc* pDoc = GetDocument(); if (nFlags & MK_LBUTTON)
{ pDoc->mOld = point; } Sự kiện WM_LbuttonUp của lớp View Sự kiện WM_MouseMove
của lớp View CVehinhDoc* pDoc = GetDocument();if (nFlags & MK_LBUTTON) {
pDoc->mCur = point;
} Phương thức OnDraw của lớp View CDiem* pDiem; //CPen* pPen;
//Ve cac diem truoc do den diem hien tai for(int i=0; i<pDoc->mDS.GetSize(); i++) { //mPen.DeleteObject(); pDiem = (CDiem*)pDoc->mDS.GetAt(i); //mPen.CreatePen(PS_SOLID, 1, pDiem->color); //if(i==0) //pPen = pDC->SelectObject(&mPen); //else //pDC->SelectObject(&mPen);
DrawShape(pDC, pDiem->type, pDiem->m1, pDiem->m2); }
DrawShape(pDC, pDoc->type, pDoc->m1, pDoc->m2); Hàm DrawShape
Lớp View.cpp
- Nhập dòng #include "Diem.h".
- Chọn thẻ > Click chuột phải lên lớp View > Chọn Add Member Function.
- Sau đó xuất hiện hộp thoại Add Member Function như hình sau:
o Nhập kiểu dữ liệu trả về là void ở hộp .
o Nhập tên hàm là DrawShape ở hộp .
- Nhập đối số cho hàm như sau:
DrawShape(CDC* pDC, int mShape, CPoint m1, CPoint m2)
- Kế đó nhập nội dung hàm như sau:
void CVeHinhView::DrawShape(CDC* pDC, int mShape, CPoint m1, CPoint m2) switch(mShape) { case 1: pDC->MoveTo(m1); pDC->LineTo(m2); break; case 2:
pDC->Rectangle(m1.x, m1.y, m2.x, m2.y); break;
case 3:
pDC->Ellipse(m1.x, m1.y, m2.x, m2.y); break;
} }
Lớp View.h
- Thêm đối số cho hàm DrawShape như sau:
// Implementation public:
void DrawShape(CDC* ,int ,CPoint ,CPoint ); Sự kiện WM_LButtonUp
của lớp View
CVehinhDoc* pDoc = GetDocument(); CDiem* pDiem = new CDiem();
pDiem->m1 = pDoc->mOld; pDiem->m2 = pDoc->mCur; pDiem->mShape = pDoc->mShape; pDiem->mColor = pDoc->mColor; pDoc->mDS.Add(pDiem); }
- MFC: CVeHinhView > CVeHinhView > WM_LButtonDown - MFC: CVeHinhView > CVeHinhView > WM_LButtonUp - MFC: CVeHinhView > CVeHinhView > WM_MouseMove
- MFC: CVeHinhView > ID_LUACHON_DUONGTHANG > COMMAND void CVehinhView::OnLuachonDuongthang()
{
// TODO: Add your command handler code here CVehinhDoc* pDoc = GetDocument();
pDoc->type = 1; //line; }
- MFC: CVeHinhView > ID_LUACHON_DUONGTHANG > UPDATE_COMMAND_UI: void CVehinhView::OnUpdateLuachonDuongthang(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here CVehinhDoc* pDoc = GetDocument();
if(pDoc->type==1)
pCmdUI->SetCheck(1); else
pCmdUI->SetCheck(0); }
Thiết kế Điều khiển-Control Design Vẽ-Draw
1) Resource View > Menu > IDR_MAINFRAME ID_LUACHON_DUONGTHANG
ID_LUACHON_HINHCHUNHAT ID_LUACHON_ELIP
Thuộc tính-Properties Viết mã-Coding
Khai báo Biến-Variable Declaration Chèn Thông điệp- Add Message
1. Cài đặt (Setup) ... 1
1.1. Visual C++ 6.0 ... 1
2. Cửa sổ làm việc (Window) ... 1
2.1. Khởi động-Open,Thoát-Exit ... 1
2.2. Giao diện (Interface) ... 1
3. Dự án (Project) - DPW ... 2 * Cập nhật ứng dụng: ... 5 ... 5 ... 5 ... 5 ... 5 * Đóng ứng dụng: ... 5 ... 5
4. Giao diện (Interface) ... 5
4.1. Trình đơn-Menu (CWnd,CMenu) ... 5
4.2. Cửa sổ-Dialog~Lớp-Class ... 11
4.2.1. Modal (CDialog) ... 11
4.2.2. Modeless (CDialog) ... 13
4.3. Nút-Button (CButton,CWnd) ... 16
4.4. Nhãn-Static Text (CString,CStatic) ... 19
4.5. Hộp nhập liệu-Edit Text (CEdit) ... 22
4.6. Khung nhóm-Group Box ... 24
4.7. Hộp lựa chọn-Radio Box (CButton) ... 25
4.8. Hộp đánh dấu-Check Box (CButton) ... 28
4.9. Hộp danh sách-List Box (CListBox) ... 31
4.10. Hộp danh sách thả xuống-Combo Box (CComboBox) ... 35
4.11. Hộp ngày giờ-Date Time Picker (COleDateTime, CTime) ... 39
4.12. Hộp ngày tháng-Month Calendar Control (COleDateTime, CTime) ... 42
4.13. Thời gian-Timer (COleDateTime, CTime) ... 42
4.14. Thanh tiến trình-Progress (CProgressCtrl) ... 43
4.15. Thanh cuộn-Scroll Bar (CScrollBar) ... 46
4.16. Thanh trượt-Slider (CSliderCtrl) ... 46
4.17. Hộp tăng giảm giá trị-Spin () ... 49
4.18. Cây-Tree Control (CTreeCtrl) ... 49
4.19. Thẻ-Tab Control (CTreeCtrl) ... 52
4.20. Danh sách-List Control (CListCtrl) ... 52
4.21. Picture ... 56
4.22. Images, Bitmaps và Icons ... 56
4.23. Hoạt hình-Animate ... 56
4.24. Hộp địa chỉ mạng-IP Address ... 57
4.25. Hộp thông báo-Message Box (Lớp CWnd) ... 57
5. Giải thuật (Algorithm) ... 57
5.1. Thoát-Exit ... 57
5.2. GetDlgItem ... 57
5.3. ShowWindow ... 58