Luận văn nghiên cứu các phương pháp nhận dạng từ cursor mouse trên desktop windows

111 806 0
Luận văn nghiên  cứu các phương pháp nhận dạng từ cursor mouse trên desktop windows

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

TRƯỜNG ĐẠI HỌC KỸ THUẬT TP. HỒ CHÍ MINH KHOA CÔNG NGHỆ THÔNG TIN oOo BÁO CÁO LUẬN VĂN TỐT NGHIỆP Đề tài: - Nghiên cứu các phương pháp nhận dạng từ dưới cursor mouse trên Desktop Windows. - Viết chương trình nhận dạng từ này. Giáo viên hướng dẫn : Tiến Só Nguyễn Văn Hiệp Sinh viên thực hiện : Võ Minh Trực (Lớp KS2-K5T) Phùng Đình Mân (Lớp KS2-K6T) Tháng 7 năm 1999 Chúng tôi xin chân thành cảm ơn quý Thầy Cô khoa Công Nghệ Thông Tin - Trường Đại Học Kỹ Thuật và các bạn cùng lớp đã giúp đỡ chúng tôi thời gian qua, đặc biệt, lòng biết ơn sâu sắc đến Thầy Nguyễn Văn Hiệp - Tiến Só Tin Học - đã tận tình hướng dẫn chúng tôi hoàn thành Luận Án Tốt nghiệp này. KHOA CÔNG NGHỆ THÔNG TIN - TRƯỜNG ĐẠI HỌC KỸ THUẬT TP.HCM MỤC LỤC PHẦN I: THUYẾT MINH 2 LỜI MỞ ĐẦU 3 CHƯƠNG 1: TÌM HIỂU VỀ LẬP TRÌNH WINDOWS 4 I. Khái quát về lập trình trong Windows 5 II. Thông điệp và xử lý thông điệp 6 III. Giao diện thiết bò đồ họa GDI 10 IV. Cửa sổ trong Windows 13 V. Chương trình Windows tiếp nhận thông điệp chuột 18 CHƯƠNG 2: TÌM HIỂU VỀ HOOK 21 1 - Chuỗi hook 22 2 - Thủ tục hook 22 3 - Các loại hook 23 4 - Sử dụng hook 24 5 - Hook trong Windows 3.x 25 6 - Giới thiệu một số hàm liên quan đến hook 26 CHƯƠNG 3: KỸ THUẬT OVERRIDE HÀM API 29 I. Khái quát về kỹ thuật override 30 II. Lý do sử dụng kỹ thuật override trong lập trình Windows 30 III. Cơ chế hoạt động và quản lý bộ nhớ trên Windows 16bits 31 IV. Cơ chế hoạt động và quản lý bộ nhớ trên Windows 32bits 33 V. Hiện thực kỹ thuật override trên Windows 16bits 36 VI. Một số hàm được sử dụng trong kỹ thuật override 40 CHƯƠNG 4: KẾT XUẤT VĂN BẢN TRONG WINDOWS 43 I. Kết xuất văn bản trong Windows 44 II. Các hàm căn bản để kết xuất văn bản 44 CHƯƠNG 5: PHÂN TÍCH VÀ THIẾT KẾ CHƯƠNG TRÌNH 53 I. Phân tích vấn đề 54 II. Thiết kế chương trình 55 III. Giới thiệu một số hàm có liên quan 64 IV. Giới thiệu một số cấu trúc dữ liệu có liên quan 75 KẾT QUẢ VÀ HƯỚNG PHÁT TRIỂN 79 PHẦN II: CHƯƠNG TRÌNH NGUỒN 80 CÁCH DÙNG CHƯƠNG TRÌNH 103 TÀI LIỆU THAM KHẢO 104 BÁO CÁO LUẬN VĂN TỐT NGHIỆP Đề tài : “NHẬN DẠNG TỪ DƯỚI CURSOR MOUSE TRÊN DESKTOP WINDOWS” 1 KHOA CÔNG NGHỆ THÔNG TIN - TRƯỜNG ĐẠI HỌC KỸ THUẬT TP.HCM Phần I: BÁO CÁO LUẬN VĂN TỐT NGHIỆP Đề tài : “NHẬN DẠNG TỪ DƯỚI CURSOR MOUSE TRÊN DESKTOP WINDOWS” 2 KHOA CÔNG NGHỆ THÔNG TIN - TRƯỜNG ĐẠI HỌC KỸ THUẬT TP.HCM Lời mở đầu Lời mở đầu gày nay, hầu như mọi công việc hàng ngày liên quan đến cuộc sống của chúng ta đều diễn ra trên máy tính. Từ việc soạn thảo văn bản, gởi nhận thông tin đến việc tra cứu, truy cập thông tin từ hệ thống mạng máy tính toàn cầu Internet đối với người sử dụng là công việc thường ngày và rất phổ biến. Từ đó, sẽ phát sinh vấn đề là người sử dụng sẽ cần tìm hiểu ý nghóa của một từ, một câu hoặc cần phải dòch một đoạn văn bản, một file dữ liệu nào đó ra tiếng Việt và ngược lại. Đây là một nhu cầu cần thiết và hầu như xảy ra thường xuyên đối với nhiều người, do đó nhận dạng từ đặc biệt là nhận dạng từ trên màn hình trong môi trường Windows là việc làm cần thiết và có ý nghóa thực tế. Kết quả của việc nhận dạng từ sẽ được dùng để xây dựng nên các ứng dụng khác chẳng hạn như các từ điển được tra cứu theo kiểu tương tác trực tiếp sẽ rất thuận tiện cho người sử dụng bởi vì theo cách này thì cho dù đang ở trong bất kỳ ứng dụng nào khi cần tra cứu thì thao tác trực tiếp ngay trên ứng dụng đang dùng tức là chỉ cần click chuột vào đó chứ không cần phải mở từ điển rồi tra cứu từ đó theo kiểu cổ điển. Vì thế, trong thời gian làm Luận Án Tốt nghiệp được sự hướng dẫn của Tiến Só Tin Học Nguyễn Văn Hiệp nhóm sinh viên chúng tôi thực hiện đề tài: “ Nhận dạng từ dưới cursor mouse trên deskop Windows. Viết chương trình nhận dạng từ này ”. Trong giai đoạn đầu của Luận Án Tốt Nghiệp chúng tôi đã nghiên cứu được một số vấn đề quan trọng và căn bản có ý nghóa trong việc thực hiện yêu cầu đã đặt ra của đề tài. Đề tài này chỉ tập trung nhận dạng từ ở dạng text trên desktop của môi trường Windows rồi xuất kết quả ra. Trong thời gian làm Luận Án Tốt Nghiệp nhóm sinh viên chúng tôi đã tiến hành nghiên cứu cơ chế hoạt động và quản lý của hệ điều hành Windows. Nghiên cứu về phương thức lập trình trong môi trường Windows và các phương tiện mà Windows hỗ trợ khi lập trình. Tham khảo và nghiên cứu kỹ thuật override các hàm giao tiếp của Windows ở chế độ 16 bit và 32 bit. Nghiên cứu cách xử lý các thông điệp trong Windows và tìm hiểu về cách kết xuất văn bản, về chế độ ánh xạ, vấn đề tọa độ . . . và cách xử lý văn bản. Trên cơ sở đó bước đầu chúng tôi đã xây dựng xong một ứng dụng có khả năng nhận dạng được từ trên nền Windows 16 bit được viết bằng ngôn ngữ Visual C++ version 1.5 và hướng phát triển trong thời gian tới là hiện thực nó trên nền Win32. Báo cáo của chúng tôi sẽ lần lượt điểm qua những nội dung mà chúng tôi đã nghiên cứu và tìm hiểu được trong thời gian qua. Sau đó là phần giới thiệu chi tiết về chương trình từ khâu phân tích-thiết kế cho đến phần chương trình nguồn và cuối cùng sẽ là nêu những vấn đề còn tồn tại và hướng phát triển trong tương lai. BÁO CÁO LUẬN VĂN TỐT NGHIỆP Đề tài : “NHẬN DẠNG TỪ DƯỚI CURSOR MOUSE TRÊN DESKTOP WINDOWS” 3 KHOA CÔNG NGHỆ THÔNG TIN - TRƯỜNG ĐẠI HỌC KỸ THUẬT TP.HCM Chương 1: TÌM HIỂU VỀ TÌM HIỂU VỀ LẬP TRÌNH WINDOWS LẬP TRÌNH WINDOWS BÁO CÁO LUẬN VĂN TỐT NGHIỆP Đề tài : “NHẬN DẠNG TỪ DƯỚI CURSOR MOUSE TRÊN DESKTOP WINDOWS” 4 KHOA CÔNG NGHỆ THÔNG TIN - TRƯỜNG ĐẠI HỌC KỸ THUẬT TP.HCM I - KHÁI QUÁT VỀ LẬP TRÌNH TRONG WINDOWS: 1 - Khái quát về lập trình trong Windows: Môi trường lập trình Windows về cơ bản là dựa trên bộ hàm API (Application Programmer Interface), nó có chức năng như các ngắt trong bảng vector ngắt của DOS, nhưng nó thân thiện hơn ở chỗ cách gọi hàm API giống hệt cách gọi hàm của ngôn ngữ cấp cao, mỗi hàm có một tên gọi hẳn hoi, và tên gọi thường được đặt rất phù hợp với công dụng của hàm (mặc dù có hơi dài dòng) từ đó tạo khả năng gợi nhớ cao. Với Windows, người lập trình không còn phải lập trình theo kiểu assembly nữa mà lập trình theo kiểu ngôn ngữ cấp cao, mọi hoạt động trong máy ở mức thấp từ hàm API trở xuống thuộc phạm vi của Windows, và Windows không khuyến khích việc các ứng dụng can thiệp vào lónh vực này. Bù lại, bằng các hàm API, nó hỗ trợ rất hiệu quả cho người lập trình, giúp khai thác khả năng của thiết bò triệt để, dễ dàng và tiện lợi hơn bao giờ hết. Có thể nói Windows đã mở ra cho người lập trình không gian rộng lớn để phát triển ứng dụng, và hạn chế không gian phát triển hệ thống. Điều này dẫn đến hệ quả là các ứng dụng được tạo ra hết sức dễ dàng, và quan trọng là hệ thống chạy ổn đònh hơn, không bò treo do lỗi của ứng dụng, không thể xâm nhập, nhưng sẽ rất khó khăn nếu người lập trình muốn trực tiếp điều khiển hoạt động trong máy và phát triển về lập trình hệ thống. - Tìm hiểu hàm Windows API: Windows là một hệ điều hành đa nhiệm (multitasking) mà qua đó các ứng dụng ở trong môi trường Windows sẽ giao tiếp với user thông qua một hay nhiều giao diện. Để truy cập các giao diện này thì các ứng dụng được xây dựng trên môi trường Windows sẽ sử dụng tập các hàm được gọi là giao diện chương trình ứng dụng API (Application Program Interface). Chương trình của người sử dụng có thể gọi tới các hàm API để truy cập tới mọi tài nguyên của Windows. GDI là một bộ phận của API, giao diện thiết bò đồ họa GDI (Graphic Device Interface) có nhiệm vụ duy trì sự độc lập của Windows đối với các thiết bò đồ họa hay còn gọi là khả năng độc lập thiết bò (device independent) tức là cho phép Windows làm việc với nhiều kiểu thiết bò đồ họa khác nhau. 2 - Thư viện liên kết động DLL (Dynamic Link Library): Thư viện liên kết động là các tập tin được Windows lưu dưới dạng nhò phân chứa các hàm mà mọi ứng dụng trên Windows đều có thể sử dụng. Nét đặc trưng của DLL là nó có thể được sử dụng bởi nhiều ứng dụng tại cùng một thời điểm hay nói cách khác thư viện liên kết động có thể cùng một lúc được gọi bởi nhiều chương trình. DLL là một dữ liệu chia sẻ được (shared data). Có 3 loại DLL khác nhau: - Thư viện liên kết động API: thuộc hệ thống Windows, khi cài hệ điều hành thì nó đã có sẵn. Chúng được nạp khi Windows khởi động. - Thư viện liên kết động third party: do các công ty khác tạo ra trên môi trường Windows, hỗ trợ thêm công tác lập trình trong Windows. BÁO CÁO LUẬN VĂN TỐT NGHIỆP Đề tài : “NHẬN DẠNG TỪ DƯỚI CURSOR MOUSE TRÊN DESKTOP WINDOWS” 5 KHOA CÔNG NGHỆ THÔNG TIN - TRƯỜNG ĐẠI HỌC KỸ THUẬT TP.HCM - Thư viện liên kết động do chúng ta tạo ra. Windows sử dụng cấu trúc thư viện liên kết động DLL (Dynamic Link Library) nhằm mục đích không sao chép một khối lượng lớn các mã vào trong chương trình như ở các thư viện thông thường. Nhờ cấu trúc động của DLL nên mọi chương trình đều có thể truy cập thư viện trong thời gian thực thi. Các hàm API được Windows giữ dưới dạng hỗn hợp trong một số DLL. Trong quá trình dòch khi gặp lệnh gọi hàm API từ chương trình ứng dụng thì chương trình dòch không thêm mã này vào module thực hiện mà chỉ thêm các lệnh liên kết (chứa tên của DLL bên trong có hàm cần nạp) và tên hàm đó. Khi thực thi chương trình thì hàm API thực sự mới được nạp vào bộ nhớ để thực hiện. Cùng với sự phát triển của Windows là sựï phát triển của lập trình hướng đối tượng, và để hỗ trợ cho việc lập trình hướng đối tượng, Microsoft đã cung cấp cho người lập trình một bộ thư viện các lớp cơ bản để phát triển các ứng dụng hướng đối tượng gọi là MFC (Microsoft Foundation Classes), nội dung của nó bao gồm thông tin về các lớp cơ bản được chuẩn hóa như lớp application; document; view; OLE; cửa sổ; nút bấm; text; v.v…, trong các lớp này mọi thứ liên quan đến nó (bao gồm dữ liệu và các chương trình xử lý của nó) đều được làm hoàn chỉnh, người lập trình chỉ việc lấy ra sử dụng, hoặc có thể thêm bớt một ít tính năng đặc trưng cho đối tượng của mình. Mục tiêu chính của MFC là hệ thống hóa các hàm API, cung cấp một thể thức gọi gọn các hàm API, cung cấp một “khung làm việc” (framework) cực mạnh để người lập trình không cần phải quan tâm đến những đoạn chương trình thuộc về “thủ tục” mà chỉ cần quan tâm đến phần cốt lõi để đạt được mục đích. II - THÔNG ĐIỆP VÀ XỬ LÝ THÔNG ĐIỆP: 1 - Khái niệm: Lập trình trên môi trường Windows khác với lập trình ở các môi trường khác ở điểm là lập trình trên Windows luôn luôn gắn liền với những thông điệp. Mọi hoạt động xảy ra trên một chương trình Windows đều thông qua các thông điệp. Thông điệp sẽ được hệ thống báo cho các ứng dụng biết các tác động từ bên ngoài vào hệ thống Windows. Một cửa sổ có thể gởi đi một thông điệp cho một cửa sổ khác và các cửa sổ đáp ứng lại thông điệp bằng cách gởi đi một thông điệp khác cho một cửa sổ khác. Trong Windows có 3 loại thông điệp cơ bản: - Những thông điệp tổng quát: có mã nhận diện mang tiền tố WM_ được coi là phần lớn trong ứng dụng và Windows đã cung cấp các hàm để giải quyết. - Những control notification: đây là những thông điệp WM_COMMAND được chuyển từ cửa sổ con tới cửa sổ bố mẹ. - Những nút lệnh: là thông điệp WM_COMMAND phát đi từ trình đơn, từ các nút điều khiển. Đây là loại thông điệp yêu cầu ứng dụng phải thực hiện một công việc gì đó. BÁO CÁO LUẬN VĂN TỐT NGHIỆP Đề tài : “NHẬN DẠNG TỪ DƯỚI CURSOR MOUSE TRÊN DESKTOP WINDOWS” 6 KHOA CÔNG NGHỆ THÔNG TIN - TRƯỜNG ĐẠI HỌC KỸ THUẬT TP.HCM 2 - Gởi đi các thông điệp: Windows cho phép ứng dụng gởi đi những thông điệp cho mình, cho các ứng dụng khác hoặc cho hệ thống. Có 3 hàm Windows API để gởi thông điệp đi: a) Hàm SendMessage: Cú pháp: LRESULT SendMessage(hwnd, uMsg, wParam, lParam) HWND hwnd; // handle của cửa sổ nhận (đích) UINT uMsg; // thông điệp để gởi WPARAM wParam; // thông số thông điệp đầu tiên LPARAM lParam; // thông số thông điệp thứ hai - Hàm SendMessage gởi thông điệp tới một hay nhiều cửa sổ. Hàm gọi thủ tục cửa sổ cho cửa sổ và không trở về cho đến lúc thủ tục cửa sổ đã xử lý thông điệp. - Giá trò trả về: cho biết kết quả xử lý thông điệp và phụ thuộc vào thông điệp được gởi. b) Hàm PostMessage: - Cú pháp: BOOL PostMessage(hwnd, uMsg, wParam, lParam) HWND hwnd; // handle của của sổ đích UINT uMsg; // thông điệp gởi WPARAM wParam; // thông số thông điệp đầu tiên LPARAM lParam; // thông số thông điệp thứ hai - Hàm PostMessage gởi (đặt) một thông điệp vào trong hàng thông điệp cửa sổ và rồi trở về mà không đợi cửa sổ tương ứng xử lý thông điệp. Những thông điệp trong một hàng thông điệp được lấy bằng cách gọi hàm SetMessage hay PeekMessage. - Giá trò trả về: trả về khác 0 nếu thành công, ngược lại 0. c) Hàm SendDlgItemMessage: - Cú pháp: LRESULT SendDlgItemMessage(hwndDlg,idDlgItem,uMsg,wParam,lParam) HWND hwndDlg; // handle của hộp hội thoại int idDlgItem; // mã nhận diện ô điều khiển sẽ nhận thông điệp UINT uMsg; // thông điệp gởi đi WPARAM wParam; // thông số thông điệp đầu tiên LPARAM lParam; // thông số thông điệp thứ hai BÁO CÁO LUẬN VĂN TỐT NGHIỆP Đề tài : “NHẬN DẠNG TỪ DƯỚI CURSOR MOUSE TRÊN DESKTOP WINDOWS” 7 KHOA CÔNG NGHỆ THÔNG TIN - TRƯỜNG ĐẠI HỌC KỸ THUẬT TP.HCM - Hàm SendDlgItemMessage gởi một thông điệp tới một điều khiển trong hộp hội thoại. - Giá trò trả về: cho biết kết quả xử lý thông điệp và phụ thuộc vào thông điệp được gởi. 3 - Vòng lặp thông điệp: Một thread hoặc một process đẩy một thông điệp ra khỏi hàng đợi bằng cách dùng vòng lặp thông điệp. Vòng loop chính của một ứng dụng đặt tại cuối hàm WinMain() của ứng dụng đó. Vòng lặp thông điệp có dạng như sau: while GetMessage(&msg,NULL,0,0) { TranslateMessage(&msg); DispatchMessage(&msg); } Sau đây là Sơ đồ dòng thông điệp: Nó mô tả đơn giản hóa quá trình xử lý thông điệp. Thông điệp có thể bắt nguồn từ nhiều cách khác nhau, sơ đồ sau đây sẽ giải thích chi tiết hơn về vòng lặp thông điệp và chỉ ra cách thông điệp được đặt vào hàng đợi như thế nào: BÁO CÁO LUẬN VĂN TỐT NGHIỆP Đề tài : “NHẬN DẠNG TỪ DƯỚI CURSOR MOUSE TRÊN DESKTOP WINDOWS” 8 Thread1 Message Queue Thread2 Message Queue Thread3 Message Queue System Dispatcher Hardware Event Occur System Message Queue GetMessage() TranslateMessage() Dispatch Message() GetMessage() TranslateMessage() Dispatch Message() GetMessage() TranslateMessage() Dispatch Message() WndProc() WndProc() WndProc() DefWndProc() DefWndProc() DefWndProc() Thread1 Hook Thread2 Hook Thread3 Hook System Dispatcher [...]... như các thông điệp WM_SYSCOMMAND Cuối cùng DefWindowProc() giải quyết các thông điệp WM_NCHITTEST và WM_SETCURSOR cung cấp trước cho các thông điệp chuột khác BÁO CÁO LUẬN VĂN TỐT NGHIỆP Đề tài : “NHẬN DẠNG TỪ DƯỚI CURSOR MOUSE TRÊN DESKTOP WINDOWS 20 KHOA CÔNG NGHỆ THÔNG TIN - TRƯỜNG ĐẠI HỌC KỸ THUẬT TP.HCM Chương 2: TÌM HIỂU VỀ HOOKS BÁO CÁO LUẬN VĂN TỐT NGHIỆP Đề tài : “NHẬN DẠNG TỪ DƯỚI CURSOR MOUSE. .. là kết quả của quá trình xử lý và tùy thuộc vào thông số nCode BÁO CÁO LUẬN VĂN TỐT NGHIỆP Đề tài : “NHẬN DẠNG TỪ DƯỚI CURSOR MOUSE TRÊN DESKTOP WINDOWS 28 KHOA CÔNG NGHỆ THÔNG TIN - TRƯỜNG ĐẠI HỌC KỸ THUẬT TP.HCM Chương 3: KỸ THUẬT OVERRIDE HÀM API BÁO CÁO LUẬN VĂN TỐT NGHIỆP Đề tài : “NHẬN DẠNG TỪ DƯỚI CURSOR MOUSE TRÊN DESKTOP WINDOWS 29 KHOA CÔNG NGHỆ THÔNG TIN - TRƯỜNG ĐẠI HỌC KỸ THUẬT TP.HCM... này có ích cho việc ghi các macro - WH_KEYBOARD hook quản lý các thông điệp keystroke BÁO CÁO LUẬN VĂN TỐT NGHIỆP Đề tài : “NHẬN DẠNG TỪ DƯỚI CURSOR MOUSE TRÊN DESKTOP WINDOWS 23 KHOA CÔNG NGHỆ THÔNG TIN - TRƯỜNG ĐẠI HỌC KỸ THUẬT TP.HCM - WH_KEYBOARD_LL Windows NT: hook quản lý những sự kiện nhập vào từ keyboard mức thấp - WH _MOUSE hook quản lý các thông điệp chuột - WH _MOUSE_ LL Windows NT: hook quản... mã nguồn của các ứng dụng đó Từ đó ta thấy override xử lý các tình huống này hoàn toàn một cách tự động Như vậy, trong Windows thì kỹ thuật override là một trong những kỹ thuật có thể được dùng như là phương tiện nâng cao tính năng của chương trình ứng dụng mà vẫn được sự chấp thuận của hệ thống Windows BÁO CÁO LUẬN VĂN TỐT NGHIỆP Đề tài : “NHẬN DẠNG TỪ DƯỚI CURSOR MOUSE TRÊN DESKTOP WINDOWS 30 KHOA... cấp một thủ tục để báo cáo các biến cố xảy ra trên chuột Khi có một mouse event thì driver thông báo cho Windows biết Nếu event là di chuyển mouse thì ưu tiên đáp ứng vò trí con trỏ di BÁO CÁO LUẬN VĂN TỐT NGHIỆP Đề tài : “NHẬN DẠNG TỪ DƯỚI CURSOR MOUSE TRÊN DESKTOP WINDOWS 18 KHOA CÔNG NGHỆ THÔNG TIN - TRƯỜNG ĐẠI HỌC KỸ THUẬT TP.HCM chuyển ngay lúc ngắt Còn lại tất cả các event khác đều được đưa... hook khi nó gọi hàm CallNextHookeEx và UnhookWindowsHookEx Giá trò trả về là NULL nếu có lỗi c) Hàm gỡ bỏ một hàm hook UnhookWindowsHookEx: - Cú pháp: BOOL UnhookWindowsHookEx(hhook) HHOOK hhook; BÁO CÁO LUẬN VĂN TỐT NGHIỆP Đề tài : “NHẬN DẠNG TỪ DƯỚI CURSOR MOUSE TRÊN DESKTOP WINDOWS 27 KHOA CÔNG NGHỆ THÔNG TIN - TRƯỜNG ĐẠI HỌC KỸ THUẬT TP.HCM - Hàm UnhookWindowsHookEx bỏ đi một hàm hook application... nguyên hệ thống bởi vậy ứng dụng sẽ không sử dụng các cửa sổ con một cách bừa bãi Để hoạt động tối ưu một ứng dụng cần chia luận lý BÁO CÁO LUẬN VĂN TỐT NGHIỆP Đề tài : “NHẬN DẠNG TỪ DƯỚI CURSOR MOUSE TRÊN DESKTOP WINDOWS 14 KHOA CÔNG NGHỆ THÔNG TIN - TRƯỜNG ĐẠI HỌC KỸ THUẬT TP.HCM cửa sổ chính của nó trong thủ tục cửa sổ của cửa sổ chính còn hơn là dùng các cửa sổ con 2 - Thủ tục cửa sổ (Window Procedures):... BÁO CÁO LUẬN VĂN TỐT NGHIỆP Đề tài : “NHẬN DẠNG TỪ DƯỚI CURSOR MOUSE TRÊN DESKTOP WINDOWS 19 KHOA CÔNG NGHỆ THÔNG TIN - TRƯỜNG ĐẠI HỌC KỸ THUẬT TP.HCM Hai thông điệp WM_NCHITTEST và WM_SETCURSOR bao giờ cũng đi trước một thông điệp chuột Vì Windows phải tìm ra xem vò trí cursor hiện ở trong vùng client hay vùng non-client để phát ra thông điệp vùng client hay thông điệp vùng non-client một cách thích... - Cú pháp: BOOL CallMsgFilter(lpmsg, nCode) MSG FAR* lpmsg; int nCode; - CallMsgFilter chuyển thông điệp đưa ra và mã tới hàm lọc thông điệp hiện hành Hàm lọc thông điệp là một hàm đặc tả ứng dụng kiểm tra và sửa đổi tấ cả các thông điệp Một ứng dụng xác đònh hàm bằng cách sử dụng hàm SetWindowsHook - Thông số: BÁO CÁO LUẬN VĂN TỐT NGHIỆP Đề tài : “NHẬN DẠNG TỪ DƯỚI CURSOR MOUSE TRÊN DESKTOP WINDOWS ... đa phần bộ nhớ còn lại Đối với khối nhớ hủy bỏ được Windows có thể hủy nó để cấp cho nhu cầu khác và ứng dụng có thể nạp trở lại dữ liệu khi cần thiết BÁO CÁO LUẬN VĂN TỐT NGHIỆP Đề tài : “NHẬN DẠNG TỪ DƯỚI CURSOR MOUSE TRÊN DESKTOP WINDOWS 32 KHOA CÔNG NGHỆ THÔNG TIN - TRƯỜNG ĐẠI HỌC KỸ THUẬT TP.HCM Khi xin cấp một khối nhớ thì user sẽ nhận từ windows một handle bộ nhớ , dùng handle để lấy đòa chỉ . CÁO LUẬN VĂN TỐT NGHIỆP Đề tài: - Nghiên cứu các phương pháp nhận dạng từ dưới cursor mouse trên Desktop Windows. - Viết chương trình nhận dạng từ này. Giáo viên hướng dẫn : Tiến Só Nguyễn Văn. system) BÁO CÁO LUẬN VĂN TỐT NGHIỆP Đề tài : “NHẬN DẠNG TỪ DƯỚI CURSOR MOUSE TRÊN DESKTOP WINDOWS 11 Windows Application GDI Device Context Device Driver Output Device Windows Application Windows Application Device Driver Device Driver Output Device Output Device KHOA. không sử dụng các cửa sổ con một cách bừa bãi. Để hoạt động tối ưu một ứng dụng cần chia luận lý BÁO CÁO LUẬN VĂN TỐT NGHIỆP Đề tài : “NHẬN DẠNG TỪ DƯỚI CURSOR MOUSE TRÊN DESKTOP WINDOWS 14 KHOA

Ngày đăng: 15/08/2014, 21:23

Mục lục

  • BÁO CÁO LUẬN VĂN TỐT NGHIỆP

  • MỤC LỤC

  • I - KHÁI QUÁT VỀ LẬP TRÌNH TRONG WINDOWS:

    • 1 - Khái quát về lập trình trong Windows:

    • 2 - Thư viện liên kết động DLL (Dynamic Link Library):

    • II - THÔNG ĐIỆP VÀ XỬ LÝ THÔNG ĐIỆP:

      • 1 - Khái niệm:

      • 2 - Gởi đi các thông điệp:

        • a) Hàm SendMessage:

        • b) Hàm PostMessage:

        • c) Hàm SendDlgItemMessage:

        • 3 - Vòng lặp thông điệp:

        • 4 - Xử lý thông điệp:

        • III - GIAO DIỆN THIẾT BỊ ĐỒ HỌA GDI (GRAPHIC DEVICE INTERFACE):

          • 1 - Khái niệm:

            • 2 - Device Context:

            • 3 - Chế dộ ánh xạ (mapping mode):

            • 4 - Hệ thống tọa độ windows:

              • a) Full screen coordinate system:

              • b) Client area coordinate system:

              • c) Whole window coordinate system:

              • d) Logical coordinate:

              • 5 - Viewport và window:

              • IV - CỬA SỔ TRONG WINDOWS:

                • 1 - Các loại cửa sổ:

                • 2 - Thủ tục cửa sổ (Window Procedures):

                • 3) Thông điệp cửa sổ:

Tài liệu cùng người dùng

Tài liệu liên quan