Các kỹ thuật của Visual C++ được khai thác - Pdf 13

B. CÁC KỸ THUẬT CỦA VISUAL C++ ĐƯC KHAI THÁC.
v Chương trình được viết trên môi trường Window bằng Visual C++.
v Đề tài chương trình được tạo bởi MFC AppWizard(exe) dựa trên Dialog-
Based.
v Khi tạo Dialog_Based sẽ không có các chức năng như Menu, Toolbar và
Status bar vì các lớp ứng dụng của Dialog-Based không có các chức năng
này. Sau khi AppWizard ta thấy có 3 lớp được tạo ra :
Ø CAboutDlg : Lớp Dialog liên quan tới Aboutbox.
Ø COngdauApp : lớp CWinApp dùng cho trọn ứng dụng.
Ø COngdauDlg : lớp CDialog dùng cho trọn ứng dụng.
v Lớp CObject():
(2)

Ø Lớp CObject chứa những chức năng cơ bản của lớp MFC. CObject
chứ những hàm thành viên hổ trợ cho việc cấp phát động ,yêu cầu
sản sinh hàng loạt (serialization), gán đối tượng và nhậ diện động
đối tượng vào lúc chạy chương trình .
v Lớp CCmdTarget():
Ø Lớp CCmdTarget này viết tắt chữ Class Command Target được dẫn
xuất từ CObject. Những lớp nào cần tiếp xúc với User và với hệ
điều hành thông qua các thông điệp và lệnh thì sẽ được thông qua
lớp CCmdTarget.
Ø Lớp CCmdTarget được xem như là lớp cơ sở liên quan đến cơ chế
message-map của MFC. Message-map sẽ hướng dẫn đường đi cho
các command(lệnh) hoặc message. Theo đònh nghóa người ta phân
biệt 1 command là 1 thông điệp xuất phát từ 1 mục chọn trình đơn, 1
nút điều khiển hoặc phím tắt , còn lại là thông điệp. Lớp nào dẫn
xuất từ lớp CCmdTarget đều có riêng 1 message map. Cho phép
mỗi lớp giải quyết những message liên quan đến phần quyền của
mình, để cho những thông điệp khác giải quyết bởi các lớp cấp cao
ở trên.

dụ ở đây COngdauApp là giao diện lo “việc đối ngoại” với Window khi
một tình huống nào đó xảy ra trong Window thì một thông điệp sẽ được
gởi đến cho chương trình (COngdauApp) để cho nó biết được cái gì đang
xảy ra .
Ø Ví dụ : 1 phím được ấn xuống thì thông điệp WM_KEYDOWN sẽ được
phát ra và chuyển cho COngdauApp và đến phiên chương trình sẽ khởi
động hàm giải quyết vấn đề này là OnKeyDown( ).
Ø SDI và MDI đi trước lớp này phủ quyết(override) hàm InitInstace( ), hàm
này khai báo 1 phủ quyết instance của lớp COngdauDlg thông qua lệnh :
CObject
CCmdTarget
CWinThread
CWinApp
COngdauApp
COngdauDlg dlg;
Rồi gọi hàm DoModal( ) để cho hiển thò khung đối thoại lên màn
hình rồi trả về IDOK nếu người sử dụng ấn nút OK hoặc trả về
IDCANCEL nếu ấn nút CANCEL.
Ø Hàm InitInstace trả về FALSE (nghóa là mọi phần khởi gán tạm ổn,cho chạy
phần ứng dụng ) vì đây là 1 ứng dụng Dialog_Based và khung đối thoại bò
đóng lại thì ứng dụng mới chấm dứt.
II. Lớp CDialog :
v COngdauDlg kế thừa lớp CDialog.
v CDialog viết tắt chữ class Dialog theo dẫn xuất từ các lớp dưới đây :

(2) int AFXAPI AfxMessage(UINT nIDPrompt,
UINT nType=MB_OK,
UINT nIDHelp=(UINT)-1);
Ø Ý nghóa các thông số như sau:
_ lpszText : con trỏ chỉ về 1 đối tượng Cstring hoặc chuỗi
null-terminated chứa thông báo cần được hiển thò lên ô
thông báo.
_ nType : kiểu cách trình bày ô message box.
_ nIDHelp : Mã cảnh ứng help đối với thông báo; trò zero
cho biết sẽ sử dụng Help-context mặc nhiên của ứng dụng.
_ nIDPrompt : mã nhận điện ID duy nhất dùng để qui chiếu
về 1 chuỗi trong string table.
II.2. Modal Dialog Box :Khung đối thoại này là phổ biến nhất. Khi khung
đối thoại này khởi động,thì người sử dụng chỉ được phép nhập liệu mà
thôi, và phần còn lại ứng dụng sẽ bò khoá chặt không cho nhận thông
điệp cho tơiù khi khung đối thoại chấm dứt và biến mất.Với khung này
người sử dụng phải làm cho xong việc rồi đóng lại thì mới qua khung đối
thoại khác làm việc .Trước khi thêm khung đối thoại này vào ứng dụng
ta phải tạo chúng.Developer Studio đã đưa vào 1 trình đơn gọi là
dialogbox editor thuộc nhóm resource editor giúp ta xây dựng 1 dialog
resource.Sau đó class Wizard sẽ giúp ta tạo dialog class.
Ta triệu gọi hàm thành viên DoModal( ) của đối tượng
khung đối thoại để cho hiện lên màn hình.
II.3. Modeless dialog box:Khung đối thoại này xuất hiện và nằm lì trên màn
hình cho tới khi ta ra lệnh đóng lại.Trong khi khung đối thoại modeless
nằm trên màn hình,người sử dụng có thể nhảy qua khung đối thoại khác
làm việc rồi trở về khung modeless. Khác với khung modal, khung đối
thoại modeless cho phép ứng tiếp tục nhận và giải quyết thông điệp.
III. Các tập tin cơ bản :
(2)


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status