Danh mục

Hộp thoại và thanh trình đơn

Số trang: 35      Loại file: pdf      Dung lượng: 327.30 KB      Lượt xem: 13      Lượt tải: 0    
10.10.2023

Hỗ trợ phí lưu trữ khi tải xuống: 17,000 VND Tải xuống file đầy đủ (35 trang) 0
Xem trước 4 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

HỘP THOẠI VÀ THANH TRÌNH ĐƠNHộp thoại (dialog) và thanh trình đơn (menu) là các thành phần không thể thiếu trong việc tổ chức giao tiếp giữa người sử dụng và chương trình. Hộp thoại được xem như là một loại cửa sổ đặc biệt, là công cụ mềm dẻo, linh hoạt để đưa thông tin vào chương trình một cách dễ dàng. Trong khi menu là công cụ giúp người dùng thực hiện các thao tác đơn giản hơn, thông qua các nhóm chức năng thường sử dụng. ...
Nội dung trích xuất từ tài liệu:
Hộp thoại và thanh trình đơn HỘP THOẠI VÀ THANH TRÌNH ĐƠNMỞ ĐẦUHộp thoại (dialog) và thanh trình đơn (menu) là các thành phần không thể thiếu trongviệc tổ chức giao tiếp giữa người sử dụng và chương trình. Hộp thoại được xem như làmột loại cửa sổ đặc biệt, là công cụ mềm dẻo, linh hoạt để đưa thông tin vào chương trìnhmột cách dễ dàng. Trong khi menu là công cụ giúp người dùng thực hiện các thao tác đơngiản hơn, thông qua các nhóm chức năng thường sử dụng.Phần 2 sẽ trình bày các dạng hộp thoại trong Windows, đưa ra cách khởi tạo, xử lý hộpthoại và các phần tử điều khiển trong hộp thoại.Phần 3 sẽ trình bày cách thiết lập và xử lý các thông điệp khi người dùng tác động lênmenu của chương trình ứng dụng.HỘP THOẠIHộp thoại phối hợp giữa người sử dụng với chương trình bằng một số phần tử điều khiểnmà các phần tử này nhận nhiệm vụ thu nhận thông tin từ người dùng và cung cấp thôngtin đến người dùng khi người dùng tác động đến các phần tử điều khiển. Các phần tử điềukhiển này nhận cửa sổ cha là một hộp thoại. Các phần tử điều khiển thường là cácButton, List Box, Combo Box, Check Box, Radio Button, Edit Box, Scroll Bar,Static.Tương tự như các thông điệp gởi đến thủ tục WndProc của cửa sổ chính.Windows sẽ gởicác thông điệp xử lý hộp thoại đến thủ tục xử lý hộp thoại DlgProc. Hai thủ tụcWndProc và thủ tục DlgProc tuy cách làm việc giống nhau nhưng giữa chúng có nhữngđiểm khác biệt cần lưu ý. Bên trong thủ tục xử lý hộp thoại bạn cần khởi tạo các phần tửđiều khiển bên trong hộp thoại bằng thông điệp WM_INITDIALOG, cuối cùng là đónghộp thoại, còn thủ tục xử lý WndProc thì không có. Có ba loại hộp thoại cơ bản. Hộpthoại trạng thái (modal), hộp thoại không trạng thái (modeless) và hộp thoại thông dụng(common dialog) mà chúng ta sẽ đề cập cụ thể trong các phần dưới.Hộp thoại trạng tháiHộp thoại trạng thái (modal) là loại hộp thoại thường dùng trong các ứng dụng của chúngta. Khi hộp thoại trạng thái được hiển thị thì bạn không thể chuyển điều khiển đến cáccửa sổ khác, điều này có nghĩa bạn phải đóng hộp thoại hiện hành trước khi muốn chuyểnđiều khiển đến các cửa sổ khác.Cách tạo hộp thoại đơn giảnSau đây là chương trình tạo ra một hộp thoại đơn giản. Hộp thoại được tạo ra có nội dungnhư sau.Khi hộp thoại hiện lên có xuất hiện dòng chữ HELLO WORLD, bên trên hộp thoại cómột biểu tượng của hộp thoại đó là một icon, và phía dưới hộp thoại là một nút bấm(Button) có tên là OK, khi nhấp chuột vào nút OK thì hộp thoại HELLO WORLDđược đóng lại.Đoạn code chương trình như sau: DIALOG.CPP (trích dẫn)LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM);BOOL CALLBACK DialogProc (HWND, UINT, WPARAM, LPARAM) ;LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAMlParam){static HINSTANCE hInstance ;switch (message){case WM_CREATE : hInstance = ((LPCREATESTRUCT) lParam)->hInstance ;return 0 ;case WM_COMMAND : switch (LOWORD (wParam)){ case IDC_SHOW : DialogBox (hInstance, TEXT (DIALOG1), hwnd, DialogProc) ; break; }return 0 ;case WM_DESTROY : PostQuitMessage (0) ;return 0 ;}return DefWindowProc (hwnd, message, wParam, lParam) ;}/*----------------------hàm xử lý thông điệp hộp thoại-------------------------------*/BOOL CALLBACK DialogProc (HWND hDlg, UINT message, WPARAM wParam, LPARAMlParam){switch (message){case WM_INITDIALOG : return TRUE ;case WM_COMMAND : switch (LOWORD (wParam)){ case IDOK : EndDialog (hDlg, 0) ; return TRUE ;}break ;}return FALSE ;}ϖDIALOG1.RC (trích dẫn)/*---------------------------------------dialog--------------------------------------------*/DIALOG1 DIALOG DISCARDABLE 40, 20, 164, 89STYLE DS_MODALFRAME | WS_POPUPFONT 9, MS Sans SerifBEGINDEFPUSHBUTTON OK,IDOK,54,65,50,14CTEXT HELLO WORLD ,IDC_STATIC,53,38,72,10ICON IDI_ICON1,IDC_STATIC,68,9,20,20END/* -----------------------------------------Menu------------------------------------------*/MENU1 MENU DISCARDABLEBEGINPOPUP Dialog1BEGINMENUITEM &Show, IDC_SHOWENDENDHộp thoại và tạo mẫu template cho hộp thoạiTrong ví dụ 2.1 ở trên, ta đã tạo hộp thoại bằng cách dùng các câu lệnh chứa trong file tàinguyên DIALOG1.RC. Cách làm này giúp ta hiểu cấu trúc lệnh của Windows, tuy nhiêncông cự Visual C++ Developer Studio, ta có thể thiết lập một hộp thoại trực quan hơnnhư sau : Chọn Insert từ thực đơn Resource View để thêm một hộp thoại, màn hìnhđược thể hiện như trong hình 2.2.Miscrosoft sẽ hiển thị hộp thoại trực quan cùng với thanh công cụ để bạn có thể thêm cácthành phần điểu khiển vào hộp thoại. Chúng ta có thể điều chỉnh các thuộc tính của hộpthoại như tên hộp thoại, ID hộp thoại, ví trí hiển thị của hộp thoại trên cửa sổ ...

Tài liệu được xem nhiều: