Tài liệu lập trình C trên window

Để lập trình trên Microsoft Windows®, chúng ta cần nắm được các đặc điểm cơ bản nhất của hệ điều hành này. Chương này sẽ giới thiệu khái quát các đặc điểm hệ điều hành Microsoft Windows, các vấn đề liên quan đến lập trình bằng ngôn ngữC, đồng thời đưa ra một chương trình mẫu làm sườn cho các chương trình được viết sau này.

pdf202 trang | Chia sẻ: haohao89 | Lượt xem: 1804 | Lượt tải: 2download
Bạn đang xem trước 20 trang tài liệu Tài liệu lập trình C trên window, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
NGÔN NGỮ LẬP TRÌNH LẬP TRÌNH C TRÊN WINDOWS Trang 1 LẬP TRÌNH C TRÊN WINDOWS Te ch 24 .v n NGÔN NGỮ LẬP TRÌNH LẬP TRÌNH C TRÊN WINDOWS Trang 2 Chương 1 TỔNG QUAN LẬP TRÌNH C TRÊN WINDOWS 1.1. MỞ ðẦU ðể lập trình trên Microsoft Windows®, chúng ta cần nắm ñược các ñặc ñiểm cơ bản nhất của hệ ñiều hành này. Chương này sẽ giới thiệu khái quát các ñặc ñiểm hệ ñiều hành Microsoft Windows, các vấn ñề liên quan ñến lập trình bằng ngôn ngữ C, ñồng thời ñưa ra một chương trình mẫu làm sườn cho các chương trình ñược viết sau này. Trong phần ñầu, chúng ta tìm hiểu sơ lược lịch sử phát triển của hệ ñiều hành Microsoft Windows® và những ñặc ñiểm nền tảng của Windows. Phần tiếp theo sẽ trình bày những khái niệm và yêu cầu căn bản của việc lập trình C trên Windows. Ngoài ra, phần này cũng giới thiệu các cơ chế và các công cụ mà hệ ñiều hành cung cấp cho người lập trình hay người phát triển các ứng dụng trên Windows. Cuối chương là phần xây dựng một chương trình ñơn giản nhất trên Windows. Chương trình này ñược xem như là khuôn mẫu của một chương trình ứng dụng ñiển hình, và hầu hết các ñoạn chương trình ñược viết minh họa trong sách ñều lấy chương trình này làm khung sườn ñể phát triển cho phù hợp với từng yêu cầu. Thêm vào ñó, một số kiểu dữ liệu mới ñược ñịnh nghĩa trên Windows và những qui ước về cách ñặt tên biến cũng ñược giới thiệu trong phần này. Phần chi tiết và chuyên sâu hơn của việc lập trình bằng ngôn ngữ C trên môi trường Windows sẽ ñược trình bày trong các chương tiếp theo. 1.2. HỆ ðIỀU HÀNH MICROSOFT WINDOWS 1.2.1. Giới thiệu Giữa thập niên 80, công ty phần mềm máy tính Microsoft công bố phiên bản ñầu tiên của dòng hệ ñiều hành Windows là Microsoft Windows® 1.0. ðây là hệ ñiều hành dùng giao diện ñồ họa khác với giao diện ký tự (text hay console) của MS-DOS. Tuy nhiên phải ñến phiên bản thứ hai (Windows 2.0 - tháng 11 năm 1987) thì mới có bước cải tiến ñáng kể, ñó là sự mở rộng giao tiếp giữa bàn phím và thiết bị chuột và giao diện ñồ họa (GUI-Graphic User Interface) như trình ñơn (menu) và hộp thoại (dialog). Trong phiên bản này Windows chỉ yêu cầu bộ vi xử lý Intel 8086 hay 8088 chạy ở real-mode ñể truy xuất 1 megabyte bộ nhớ. Tháng 5 năm 1990, Microsoft công bố phiên bản tiếp theo là Windows 3.0. Sự thay ñổi lớn trong phiên bản này là Windows 3.0 hỗ trợ protected-mode 16 bit của các bộ vi xử lý 286, 386, và 486 của Intel. Sự thay ñổi này cho phép các ứng dụng trên Windows truy xuất 16 megabyte bộ nhớ. Tiếp bước với sự phát triển là phiên bản Windows 3.1 ra ñời năm 1992, Microsoft ñưa công nghệ Font TrueType, âm nhạc (multimedia), liên kết và nhúng ñối tượng (OLE- Object Linking and Embedding), và ñưa ra các hộp thoại chung ñã ñược chuẩn hóa. Te ch 24 .v n NGÔN NGỮ LẬP TRÌNH LẬP TRÌNH C TRÊN WINDOWS Trang 3 Trong sự phát triển mạnh mẽ của những thập niên 90, Microsoft công bố tiếp dòng hệ ñiều hành Windows với ứng dụng công nghệ mới (1993). Hệ ñiều hành này lấy tên là Windows® NT® (Windows New Technology), ñây là phiên bản hệ ñiều hành ñầu tiên của Windows hỗ trợ 32 bit cho bộ xử lý 386, 486 và Pentium. Trong hệ ñiều hành này thì các ứng dụng phải truy xuất bộ nhớ với ñịa chỉ là 32-bit và các tập lệnh hay chỉ thị 32-bit. Ngoài ra Windows NT cũng ñược thiết kế ñể chạy các bộ vi xử lý (CPU) khác ngoài Intel và có thể chạy trên các máy trạm (workstation). Hệ ñiều hành Windows 95 ñược công bố năm 1995 cũng là một hệ ñiều hành 32-bit cho Intel 386 trở về sau. Tuy thiếu tính bảo mật như Windows NT và việc thích nghi với máy trạm công nghệ RISC, nhưng bù lại hệ ñiều hành này yêu cầu phần cứng không cao. Song song với sự phát triển phần mềm thì công nghệ phần cứng cũng phát triển không kém. ðể tận dụng sức mạnh của phần cứng thì các thế hệ Windows tiếp theo ngày càng hoàn thiện hơn. Như Windows 98 phát triển từ Window 95 và có nhiều cải thiện như hiệu năng làm việc, hỗ trợ các thiết bị phần cứng tốt hơn, và cuối cùng là việc tích hợp chặt chẽ với Internet và Word Wide Web. Windows 2000 là hệ ñiều hành ñược xem là ổn ñịnh và tốt của dòng Windows, phiên bản này tăng cường các tính năng bảo mật thích hợp trong mội trường mạng và giao diện ñẹp. 1.2.2. ðặc ñiểm chung của hệ ñiều hành Microsoft Windows Windows là một hệ ñiều hành sử dụng giao tiếp người dùng ñồ họa (GUI), hay còn gọi là hệ ñiều hành trực quan (Visual interface). GUI sử dụng ñồ họa dựa trên màn hình ảnh nhị phân (Bitmapped video display). Do ñó tận dụng ñược tài nguyên thực của màn hình, và cung cấp một môi trường giàu tính trực quan và sinh ñộng. Windows không ñơn ñiệu như MS-DOS (hay một số hệ ñiều hành giao diện console) mà màn hình ñược sử dụng chỉ ñể thể hiện chuỗi ký tự, do người dùng gõ từ bàn phím (keyboard) hay ñể xuất thông tin dạng văn bản. Trong giao diện người dùng ñồ họa, màn hình giao tiếp với người sử dụng ña dạng hơn, người dùng có thể nhập dữ liệu thông qua chuột bằng cách nhấn vào các nút nhấn (button) các hôp chọn (combo box)…thiết bị bây giờ ñược nhập, có thể là bàn phím và thiết bị chuột (mouse device). Thiết bị chuột là một thiết bị ñịnh vị trên màn hình, sử dụng thiết bị chuột người dùng có thể nhập dữ liệu một cách trực quan bằng cách kích hoạt một nút lệnh, hay làm việc với các ñối tượng ñồ họa liên quan ñến tọa ñộ trên màn hình. ðể giao tiếp trong môi trường ñồ họa, Windows ñưa ra một số các thành phần gọi là các ñiều khiển chung (common control), các ñiều khiển chung là các ñối tượng ñược ñưa vào trong hộp thoại ñể giao tiếp với người dùng. Bao gồm : hộp văn bản (text box), nút nhấn (button), nút chọn (check box), hộp danh sách (list box), hộp chọn (combo box)… Thật ra một ứng dụng trên Windows không phải là quá phức tạp vì chúng có hình thức chung. Chương trình ứng dụng thuờng chiếm một phạm vi hình chữ nhật trên màn hình gọi là một cửa sổ. Trên cùng của mỗi cửa sổ là thanh tiêu ñề (title bar). Các chức năng của chương trình thì ñược liệt kê trong thực ñơn lựa chọn của chương trình (menu) , hay xuất hiện dưới dạng trực quan hơn là các thanh công cụ (toolbar). Các thanh công cụ này chứa các chức năng ñược sử dụng thường xuyên trong thực ñơn ñể giảm thời gian cho người dùng phải mở thực ñơn và Te ch 24 .v n NGÔN NGỮ LẬP TRÌNH LẬP TRÌNH C TRÊN WINDOWS Trang 4 chọn. Thông thường khi cần lấy thông tin hay cung cấp thông tin cho người dùng thì một ứng dụng sẽ ñưa ra một hộp thoại, trong hộp thoại này sẽ chứa các ñiều khiển chung ñể giao tiếp với người dùng. Windows cũng ra tạo một số các hộp thoại chuẩn như Open Files, và một số hộp thoại tương tự như nhau. Windows là một hệ ñiều hành ña nhiệm, tùy thuộc vào bộ nhớ mà ta có thể chạy nhiều ứng dụng cùng một lúc, và cũng có thể ñồng thời chuyển qua lại giữa các ứng dụng và thực thi chúng. Trong các phiên bản của Windows® 98 và NT® trở về sau, các chương trình ứng dụng tự bản thân chúng chia thành nhiều tiểu trình (thread) ñể xử lý và với tốc ñộ xử lý nhanh tạo cảm giác những chương trình ứng dụng này chạy ñồng thời với nhau. Trong Windows, chương trình ứng dụng khi thực thi ñược chia sẻ những thủ tục mà Windows cung cấp sẵn, các tập tin cung cấp những thủ tục trên ñược gọi là thư viện liên kết ñộng (Dynamic Link Libraries - DLL). Windows có cơ chế liên kết những chương trình ứng dụng với các thủ tực ñược cung cấp trong thư viện liên kết ñộng. Khả năng tương thích của Windows cũng rất cao. Các chương trình ứng dụng ñược viết cho Windows không truy xuất trực tiếp phần cứng của những thiết bị ñồ hoạ như màn hình và máy in. Mà thay vào ñó, hệ ñiều hành cung cấp một ngôn ngữ lập trình ñồ họa (gọi là Giao tiếp thiết bị ñồ hoạ - Graphic Device Interface - GDI) cho phép hiển thị những ñối tượng ñồ họa một cách dễ dàng. Nhờ vậy một ứng dụng viết cho Windows sẽ chạy với bất cứ thiết bị màn hình nào hay bất kì máy in, miễn là ñã cài ñặt trình ñiều khiển thiết bị hỗ trợ cho Windows. Chương trình ứng dụng không quan tâm ñến kiểu thiết bị kết nối với hệ thống. Như giới thiệu ở phần trên khái niệm liên kết ñộng là thành phần quan trọng của Windows, nó ñược xem như là hạt nhân của hệ ñiều hành, vì bản thân của Windows là các tập thư viện liên kết ñộng. Windows cung cấp rất nhiều hàm cho những chương trình ứng dụng ñể cài ñặt giao diện người dùng và hiển thị văn bản hay ñồ họa trên màn hình. Những hàm này ñược cài ñặt trong thư viện liên kết ñộng hay còn gọi là DLL. ðó là các tập tin có dạng phần mở rộng là *.DLL hay *.EXE, hầu hết ñược chứa trong thư mục \Windows\System, \Windows\system32 của Windows® 98 và các thư mục \WinNT\System, \WinNT\System32 của Windows® NT®. Trong các phiên bản sau này, hệ thống liên kết ñộng ñược tạo ra rất nhiều, tuy nhiên, hầu hết các hàm ñược gọi trong thư viện này phân thành 3 ñơn vị sau: Kernel, User, và GDI. Kernel cung cấp các hàm và thủ tục mà một hạt nhân hệ ñiều hành truyền thống quản lý, như quản lý bộ nhớ, xuất nhập tập tin và tác vụ. Thư viện này ñược cài ñặt trong tập tin KRNL386.EXE 16 bit và KERNEL32.DLL 32 bit. User quản lý giao diện người dùng, cài ñặt tất cả khung cửa sổ ở mức luận lý. Thư viện User ñược cài ñặt trong tập tin USER.EXE 16 bit và USER32.DLL 32 bit. GDI cung cấp toàn bộ giao diện thiết bị ñồ hoạ (Graphics Device Interface), cho phép chương trình ứng dụng hiển thị văn bản và ñồ hoạ trên các thiết bị xuất phần cứng như màn hình và máy in. Te h2 4. vn NGÔN NGỮ LẬP TRÌNH LẬP TRÌNH C TRÊN WINDOWS Trang 5 Trong Windows 98, thư viện liên kết ñộng chứa khoảng vài ngàn hàm, mỗi hàm có tên ñặc tả, ví dụ CreateWindow, hàm này dùng ñể tạo một cửa sổ cho ứng dụng. Khi sử dụng các hàm mà Windows cung cấp cho thì các ứng dụng phải khai báo trong các tập tin tiêu ñề .h hay .hpp (header file). Trong một chương trình Windows, có sự khác biệt khi ta gọi một hàm của thư viện C và một hàm của Windows hay thư viện liên kết ñộng cung cấp. ðó là khi biên dịch mã máy, các hàm thư viện C sẽ ñược liên kết thành mã chương trình. Trong khi các hàm Windows sẽ ñược gọi khi chương trình cần dùng ñến chứ không liên kết vào chương trình. ðể thực hiện ñược các lời gọi này thì một chương trình Windows *.EXE luôn chứa một tham chiếu ñến thư viện liên kết ñộng khác mà nó cần dùng. Khi ñó, một chương trình Windows ñược nạp vào bộ nhớ sẽ tạo con trỏ tham chiếu ñến những hàm thư viện DLL mà chương trình dùng, nếu thư viện này chưa ñược nạp vào bộ nhớ trước ñó thì bây giờ sẽ ñược nạp. 1.3. LẬP TRÌNH TRÊN MICROSOFT WINDOWS 1.3.1. ðặc ñiểm chung Windows là hệ ñiều hành ñồ họa trực quan, do dó các tài nguyên của hệ thống cung cấp rất ña dạng ñòi hỏi người lập trình phải nghiên cứu rất nhiều ñể phát hay hết sức mạnh của hệ ñiều hành. Theo như những mục ñích tiếp cận của các nhà lập trình thì các ứng dụng trên Windows phải hết sức thân thiện với người dùng thông qua giao diện ñồ họa sẵn có của Windows. Về lý thuyết thì một người dùng làm việc ñược với một ứng dụng của Windows thì có thể làm việc ñược với những ứng dụng khác. Nhưng trong thực tế ñể sử dụng một ứng dụng cho ñạt hiệu quả cao trong Windows thì cần phải có một số huấn luyện trợ giúp hay tối thiểu thì phải cho biết chương trình ứng dụng làm việc như thế nào. ða số các ứng dụng trong Windows ñều có chung một giao diện tương tác với người dùng giống nhau. Ví dụ như các ứng dụng trong Windows ña số ñều có thanh thực ñơn chứa các mục như : File, Edit, Tool, Help… Và trong hộp thoại thì thường chứa các phần tử ñiều khiển chung như : Edit Control, Button Control, Checkbox…. 1.3.2. Sự khác biệt với lập trình trên MS-DOS Khi mới bước vào lập trình trên Windows ña số người học rất lạ lẫm, nhất là những người ñã từng làm việc với MS-DOS. Do MS-DOS là hệ ñiều hành ñơn nhiệm và giao tiếp qua giao diện console. Nên khi viết chương trình không phức tạp. Còn ñối với Windows người lập trình sẽ làm việc với bộ công cụ lập trình ñồ họa ña dạng cùng với cách xử lý ña nhiệm, ña luồng của Windows. Vì vậy việc lập trình trên Windows sẽ giúp cho người lập trình ñỡ nhàm chán với giao diện console của MS-DOS. Việc cố gắng phát huy các sức mạnh tài nguyên của Windows sẽ làm cho những ứng dụng càng mạnh mẽ, ña dạng, thân thiện, và dễ sử dụng. 1.3.3. Một số yêu cầu ñối với người lập trình Te ch 24 .v n NGÔN NGỮ LẬP TRÌNH LẬP TRÌNH C TRÊN WINDOWS Trang 6 ðiều trước tiên của người học lập trình C trên Windows là phải biết lập trình C, sách này không có tham vọng hướng dẫn người học có thể thông thạo lập trình C trên Windows mà chưa qua một lớp huấn luyện C nào. Tuy nhiên, không nhất thiết phải hoàn toàn thông thạo C mới học ñược lập trình Windows. ðể có thể lập trình trên nền Windows ngoài yêu cầu về việc sử dụng công cụ lập trình, người học còn cần phải có căn bản về Windows, tối thiểu thì cũng ñã dùng qua một số ứng dụng trong Windows. Thật sự yêu cầu này không quá khó khăn ñối với người học vì hiện tại hầu như Windows quá quen thuộc với mọi người, những người mà ñã sử dụng máy tính. Ngoài những yêu cầu trên, ñôi khi người lập trình trên Windows cũng cần có khiếu thẩm mỹ, vì cách trình bày các hình ảnh, các ñiều khiển trên các hộp thoại tốt thì sẽ làm cho ứng dụng càng tiện lợi, rõ ràng, và thân thiện với người dùng. 1.3.4. Bộ công cụ giao diện lập trình ứng dụng API Hệ ñiều hành Windows cung cấp hàng trăm hàm ñể cho những ứng dụng có thể sử dụng truy cập các tài nguyên trong hệ thống. Những hàm này ñược gọi là giao diện lập trình ứng dụng API (Application Programming Interface). Những hàm trên ñược chứa trong các thư viện liên kết ñộng DLL của hệ thống. Nhờ có cấu trúc ñộng này mọi ứng dụng ñều có thể truy cập ñến các hàm ñó. Khi biên dịch chương trình, ñến ñoạn mã gọi hàm API thì chương trình dịch không thêm mã hàm này vào mã thực thi mà chỉ thêm tên DLL chứa hàm và tên của chính hàm ñó. Do ñó mã các hàm API thực tế không ñược sử dụng khi xây dựng chương trình, và nó chỉ ñược thêm vào khi chương trình ñược nạp vào bộ nhớ ñể thực thi. Trong API có một số hàm có chức năng duy trì sự ñộc lập thiết bị ñồ họa, và các hàm này gọi là giao diện thiết bị ñồ họa GDI (Graphics Device Interface). Do sự ñộc lập thiết bị nên các hàm GDI cho phép các ứng dụng có thể làm việc tốt với nhiều kiểu thiết bị ñồ họa khác nhau. 1.3.5. Cơ chế thông ñiệp Không giống như các ứng dụng chạy trên MS-DOS, các ứng dụng Win32® thì xử lý theo các sự kiện (event - driven), theo cơ chế này các ứng dụng khi ñược viết sẽ liên tục chờ cho hệ ñiều hành truyền các dữ liệu nhập vào. Hệ thống sẽ ñảm nhiệm việc truyền tất cả các dữ liệu nhập của ứng dụng vào các cửa sổ khác nhau của ứng dụng ñó. Mỗi một cửa sổ sẽ có riêng một hàm gọi là hàm xử lý cửa sổ thường ñược ñặt tên là WndProc, hệ thống sẽ gọi hàm này khi có bất cứ dữ liệu nhập nào ñược truyền ñến cửa sổ, hàm này sẽ xử lý các dữ liệu nhập ñó và trả quyền ñiều khiển về cho hệ thống. Hệ thống truyền các dữ liệu nhập vào thủ tục xử lý của cửa sổ thông qua một hình thức gọi là thông ñiệp (message). Thông ñiệp này ñược phát sinh từ ứng dụng và hệ thống. Hệ thống sẽ phát sinh một thông ñiệp khi có một sự kiện nhập vào (input even), ví dụ như khi người dùng nhấn một phím, di chuyển thiết bị chuột, hay kích vào các ñiều khiển (control) như thanh cuộn,… Ngoài ra hệ thống cũng phát sinh ra thông ñiệp ñể phản ứng lại một sự thay ñổi của hệ thống do một ứng dụng mang ñến, ñiều này xảy ra khi ứng dụng làm cạn kiệt tài nguyên hay ứng dụng tự thay ñổi kích thước của cửa sổ. Te ch 24 .v n NGÔN NGỮ LẬP TRÌNH LẬP TRÌNH C TRÊN WINDOWS Trang 7 Một ứng dụng có thể phát sinh ra thông ñiệp khi cần yêu cầu các cửa sổ của nó thực hiện một nhiệm vụ nào ñó hay dùng ñể thông tin giữa các cửa sổ. Hệ thống gởi thông ñiệp vào thủ tục xử lý cửa sổ với bốn tham số: ñịnh danh của cửa sổ, ñịnh danh của thông ñiệp, và hai tham số còn lại ñược gọi là tham số của thông ñiệp (message parameters). ðịnh danh của cửa sổ xác ñịnh cửa sổ mà thông ñiệp ñược chỉ ñịnh. Hệ thống sẽ dùng ñịnh danh này ñể xác ñịnh cần phải gởi thông ñiệp ñến thủ tục xử lý của cửa sổ. ðịnh danh thông ñiệp là một hằng số thể hiện mục ñích của thông ñiệp. Khi thủ tục xử lý cửa sổ nhận thông ñiệp thì nó sẽ dùng ñịnh danh này ñể biết hình thức cần thực hiện. Ví dụ, khi một thông ñiệp ñược truyền ñến thủ tục cửa sổ có ñịnh danh là WM_PAINT thì có ý nghĩa rằng cửa sổ vùng làm việc thay ñổi và cần phải vẽ lại vùng này. Tham số thông ñiệp lưu giá trị hay vị trí của dữ liệu, ñược dùng bởi thủ tục cửa sổ khi xử lý thông ñiệp. Tham số này phụ thuộc vào loại thông ñiệp ñược truyền ñến, nó có thể là số nguyên, một tập các bit dùng làm cờ hiệu, hay một con trỏ ñến một cấu trúc dữ liệu nào ñó,… Khi một thông ñiệp không cần dùng ñến tham số thì hệ thống sẽ thiết lập các tham số này có giá trị NULL. Một thủ tục cửa sổ phải kiểm tra xem với loại thông ñiệp nào cần dùng tham số ñể quyết ñịnh cách sử dụng các tham số này. Có hai loại thông ñiệp : Thông ñiệp ñược ñịnh nghĩa bởi hệ thống (system-defined messages) : Dạng thông ñiệp này ñược hệ thống ñịnh nghĩa cho các cửa sổ, các ñiều khiển, và các tài nguyên khác trong hệ thống. Thường ñược bắt ñầu với các tiền tố sau : WM_xxx, LB_xxx, CB_xxx,… Thông ñiệp ñược ñịnh nghĩa bởi ứng dụng (application-defined message) : Một ứng dụng có thể tạo riêng các thông ñiệp ñể sử dụng bởi những cửa sổ của nó hay truyền thông tin giữa các cửa sổ trong ứng dụng. Nếu một ứng dụng ñịnh nghĩa các thông ñiệp riêng thì thủ tục cửa sổ nhận ñược thông ñiệp này phải cung cấp các hàm xử lý tương ứng. ðối với thông ñiệp hệ thống, thì ñược cung cấp giá trị ñịnh danh từ 0x0000 ñến 0x03FF, những ứng dụng không ñược ñịnh nghĩa thông ñiệp có giá trị trong khoảng này. Thông ñiệp ñược ứng dụng ñịnh nghĩa có giá trị ñịnh danh từ 0x0400 ñến 0x7FFF. Lộ trình của thông ñiệp từ lúc gởi ñi ñến lúc xử lý có hai dạng sau: Thông ñiệp ñược gởi vào hàng ñợi thông ñiệp ñể chờ xử lý (queue message): bao gồm các kiểu thông ñiệp ñược phát sinh từ bàn phím, chuột như thông ñiệp : WM_MOUSEMOVE, WM_LBUTTONDOWN, WM_KEYDOWN, và WM_CHAR. Te ch 24 .v n NGÔN NGỮ LẬP TRÌNH LẬP TRÌNH C TRÊN WINDOWS Trang 8 Thông ñiệp ñược gởi trực tiếp ñến thủ tục xử lý không qua hàng ñợi (nonqueue message), bao gồm các thông ñiệp thời gian, thông ñiệp vẽ, và thông ñiệp thoát như WM_TIMER, WM_PAINT, và WM_QUIT. Xử lý thông ñiệp : Một ứng dụng phải xóa và xử lý những thông ñiệp ñược gởi tới hàng ñợi của ứng dụng ñó. ðối với một ứng dụng ñơn tiểu trình thì sử dụng một vòng lặp thông ñiệp (message loop) trong hàm WinMain ñể nhận thông ñiệp từ hàng ñợi và gởi tới thủ tục xử lý cửa sổ tương ứng. Với những ứng dụng nhiều tiểu trình thì mỗi một tiểu trình có tạo cửa sổ thì sẽ có một vòng lặp thông ñiệp ñể xử lý thông ñiệp của những cửa sổ trong tiểu trình ñó. 1.4. CÁCH VIẾT MỘT ỨNG DỤNG TRÊN MICROSOFT WINDOWS 1.4.1. Các thành phần cơ bản tạo nên một ứng dụng 1.4.1.1. Cửa sổ Trong một ứng dụng ñồ họa 32-bit, cửa sổ (window) là một vùng hình chữ nhật trên màn hình, nơi mà ứng dụng có thể hiển thị thông tin ra và nhận thông tin vào từ người sử dụng. Do vậy, nhiệm vụ ñầu tiên của một ứng dụng ñồ họa 32-bit là tạo một cửa sổ. Một cửa sổ sẽ chia sẻ màn hình với các cửa sổ khác trong cùng một ứng dụng hay các ứng dụng khác. Chỉ một cửa sổ trong một thời ñiểm nhận ñược thông tin nhập từ người dùng. Người sử dụng có thể dùng bàn phím, thiết bị chuột hay các thiết bị nhập liệu khác ñể tương tác với cửa sổ và ứng dụng. Tất cả các cửa sổ ñều ñược tạo từ một cấu trúc ñược cung cấp sẵn gọi là lớp cửa sổ (window class). Cấu trúc này là một tập mô tả các thuộc tính mà hệ thống dùng như khuôn mẫu ñể tạo nên các cửa sổ. Mỗi một cửa sổ phải là thành viên của một lớp cửa sổ. Tất cả các lớp cửa sổ này ñều ñược xử lý riêng biệt. 1.4.1.2. Hộp thoại và các ñiều khiển Hộp thoại (Dialog) dùng ñể tương tác với người dùng trong một chương trình
Tài liệu liên quan