Hộp hội thoạ
9.6 KHAI BÁO BIẾN CHO CONTROL TRÊN DIALOG:
Khai báo biến cho control trên dialog là thực hiện định nghĩa biến đối tượng có kiểu phù hợp và thiết lập mối quan hệ giữa biến đối tượng và control liên quan. Thông qua biến đối tượng, ta dễ dàng tiến hành các xử lý cần thiết để tác động hoặc lấy giá trị của control. Có hai loại biến:
- Biến giá trị (value variable): Biến được sử dụng để lưu trữ giá trị của control.
- Biến điều khiển (control variable): Biến đối tượng, có kiểu phù hợp và các hành vi xử lý cần thiết, được sử dụng để tác động lên control. á Đồng bộ nội dung nhập trong control và nội dung biến giá trị:
Khi người dùng thao tác nhập liệu trên control, nội dung nhập chưa thực sự trở thành giá trị của biến. Ngược lại, việc gán trị cho biến cũng không làm thay đổi ngay nội dung hiển thị trong control.
110 Lập trình Windows với MFC - Microsoft Visual C++ 6.0 - Lê Ngọc Thạnh - lntmail@yahoo.com
Để thực hiện đồng bộ hai nội dung khi một trong hai hiện tượng nói trên xảy ra, ta sử dụng hành vi sau mà lớp CDialog kế thừa từ CWnd:
BOOL UpdateData( BOOL bSaveAndValidate = TRUE ); Tham số bSaveAndValidate có ý nghĩa như sau:
TRUE : Chuyển giá trị trong control vào biến giá trị. FALSE : Chuyển giá trị trong biến giá trị vào control. á Sử dụng biến điều khiển:
Biến điều khiển là đối tượng thuộc một lớp đối tượng nhập liệu (xem chương 8) có kiểu phù hợp với control. Thông qua các hành vi của biến đối tượng này, ta có thể thực hiện các tác động cho phép lên control.
2 Thực hiện ứng dụng với giao diện chính là dialog, một mục nhập và hai nút View và Set để hiển thị và đặt nội dung trong hộp nhập.
Áp dụng mục (9.5.2), tạo dự án VD27A với giao diện chính là dialog. Mở resource của dialog giao diện chính, cài đặt các control sau:
- Hộp nhập liệu : Edit Số hiệu IDC_NHAP - Nút lệnh hiển thị nội dung hộp nhập : Button IDC_XEM
- Nút lệnh đặt nội dung hộp nhập : Button IDC_DAT Khai báo biến m_szNhap kiểu CString, dùng lưu giá trị hộp nhập liệu.
Cách thực hiện như sau:
Hộp hội thoại 111
• Chọn trang Member Variables, chọn mục có số hiệu IDC_NHAP. Sau đó chọn mục Add Variable….
- Meber variable name = m_szNhap : Tên biến - Category = Value : Loại biến
- Variable type = CString : Kiểu của biến. Chọn OK. Khai báo biến m_editNhap kiểu CEdit. Biến này được sử dụng để tác
động giá trị hộp nhập liệu. Thực hiện như khai báo biến m_szNhap:
Hành vi OnXem ứng với nút chọn IDC_XEM hiển thị nội dung nhập: void CEmpDlg::OnXem()
{
UpdateData(TRUE); // Cập nhật giá trị control vào biến MessageBox( m_szNhap, "Ban da nhap", MB_OK ); }
Hành vi OnDat ứng với nút chọn IDC_XEM đặt giá trị cho hộp nhập:
112 Lập trình Windows với MFC - Microsoft Visual C++ 6.0 - Lê Ngọc Thạnh - lntmail@yahoo.com
void CEmpDlg::OnDat() {
m_editNhap.SetWindowText( "Mr.Emp, Hello !" ); }
Biên dịch và chạy thử ứng dụng. ) Hành vi OnDat có thể cài đặt như sau:
void CEmpDlg::OnDat() {
m_szNhap = "Mr.Emp, Hello !";
UpdateData(FALSE); // Cập nhật giá trị biến cho control }