Tìm hiểu về các controls trong VC6.0
Giảng viên: Trần Anh Tuấn
Tìm hiểu về các controls Slider Control ( Thanh trượt ) Progress Control ( Thanh tiến trình ) Spin Control ( Đìều khiển Xoay ) TreeView ( Cây ) Tab Control ( Điều khiển Tab )
Slider Control ( Thanh trượt ) Là thanh trượt giữa hai điểm Người dùng có thể dùng chuột hay phím mũi tên để di chuyển Các dạng có thể có : Point : Both Point : Bottom/Right Check Enable Selection
Slider Control ( Thanh trượt ) Cách dùng :
Dùng Class Winzard thêm Function cho sự kiện WM_HSCROLL (hay WM_VSCROLL) Khởi tạo : CSliderCtrl* pSlider = (CSliderCtrl*) GetDlgItem(IDC_SLIDER); pSlider->SetRange(0,100); pSlider->SetPos(0);
Lấy vị trí trượt function OnHScroll : pSlider->GetPos() ;
Progress Control ( Thanh Tiến Trình ) Là công cụ chỉ sự tiến triển của một hoạt động Thường thấy trong các hoạt động copy , xoá hay move files. Ngoài ra còn dùng trong các chức năng install/uninstall Các dạng có thể có : Check Border Check Smooth
Progress Control ( Thanh Tiến Trình ) Cách dùng :
Khởi tạo CProgressCtrl* pProg = (CProgressCtrl*) GetDlgItem( IDC_PROGRESS ); pProg->SetRange(0,100); pProg->SetPos(0);
Sự kiện : NM_OUTOFMEMORY chỉ ra rằng tiến trình không thể hoàn tất vì lỗi tràn memory Sẽ chạy liên tục nếu kết hợp với sự kiện định thời WM_TIMER
Spin Control ( Điều khiển xoay ) Dùng để điều chỉnh giá trị tăng giảm trên cửa sổ giao diện Người dùng có thể dùng chuột hay mũi tên lên xuống để chỉnh Các dạng có thể có : Check Modal Frame Default Style
Spin Control ( Điều khiển xoay ) Cách dùng :
Dùng Class Winzard thêm Function cho sự kiện WM_VSCROLL (hay WM_HSCROLL) Khởi tạo : CSpinButtonCtrl* pSpin = (CSpinButtonCtrl*) GetDlgItem(IDC_SPIN); pSpin->SetRange(0,100); pSpin->SetPos(0);
Lấy giá trị đang xoay : OnVScroll (UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) If ( pScrollBar->GetDlgCtrlID() == IDC_SPIN )
Tree View ( Cây ) Được dùng để hiển thị dạng cấu trúc cây
Thường thấy rất nhiều trong Window như Windows Explorer , Registry , Computer , Service Managerment.
Tree View ( Cây ) Các dạng có thể có : Check Has Button Check Has Lines Check Lines at Root
…… Has Check Box
Tree View ( Cây ) Cách dùng :
Tạo một đối tượng kiểu TVINSERTSTRUCT Ví dụ : TVINSERTSTRUCT tvinsert ;
Lấy đối tượng cây Ví dụ : CTreeCtrl * pTree = (CTreeCtrl *) GetDlgItem(IDC_TREE);
Thêm Function vào sự kiện chọn TVN_SELCHANGED : OnSelchangedTree (NMHDR* pNMHDR, LRESULT* pResult) { NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR; hSelect = pNMTreeView->itemNew.hItem; } //Luu Y bien hSelect la kieu HTREEITEM
Tree View ( Cây )
Insert : Nút root : tvinsert.hParent = NULL; tvinsert.item.pszText = “Root"; pTree->InsertItem(&tvinsert); Nút cha : tvinsert.hParent = hSelect; tvinsert.item.pszText = "Node Parent"; pTree->InsertItem(&tvinsert); Nút lá :
tvinsert.hParent = hSelect; tvinsert.item.pszText = “Leaf"; pTree->InsertItem(&tvinsert);
Tab Control ( Điều khiển Tab ) Dùng để hiển thị từng trang
Dùng để tiết kiệm không gian trong trường hợp quản lý nhiều thông tin
Tab Control ( Điều khiển Tab ) Cách dùng :
Ý tường chính: Bản thân tab control không cho phép vẽ lên trên Not allow to put any controls in this area
Cách dùng là xây dựng nhiều Dialog tương ứng với nội dung từng tab Thực hiện ShowWindow từng Dialog tương ứng
Tạo 2 Dialog IDD_DIALOG1 , IDD_DIALOG2 Tạo biến control m_tabCtrl cho IDD_TAB Thêm tab : m_tabCtrl.InsertItem(0,“Tab 1"); m_tabCtrl.InsertItem(1,“Tab 2");
Tạo hai lớp CTAB1 và CTAB2 cho mỗi Dialog Khai báo : CTAB1 tab1 ; CTAB2 tab2 ; Ẩn hiện tab theo sự kiện TCN_SELCHANGE If ( m_tabCtrl.GetCurSel() == 0 ) { tab1.ShowWindow(SW_SHOW); tab2.ShowWindow(SW_HIDE);
}
HẾT PHẦN CONTROLS