- Ch ươ ng 1. - ng d ng. - C ch thông đi p ơ ế ệ. - Thông đi p này đ ệ ượ c phát sinh t ng d ng và h th ng. - Đ 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. - Có hai lo i thông đi p : ạ ệ. - Thông đi p đ ệ ượ c đ nh nghĩa b i h th ng ( ị ở ệ ố system-defined messages). - 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. - Thông đi p đ ệ ượ ứ c ng d ng đ nh nghĩa có giá tr đ nh danh t ụ ị ị ị ừ 0x0400 đ n ế 0x7FFF.. - Kh i đ ng chu trình x lý thông đi p. - Chu trình x lý các thông đi p*/ ử ệ. - /*X lý các thông đi p c n thi t v i ng d ng*/ ử ệ ầ ế ớ ứ ụ. - Thông th ườ ng chúng ta ch ch n đ x lý các thông đi p c n thi t có liên quan đ n ỉ ặ ể ử ệ ầ ế ế ch c năng c a ng d ng. - X lý thông đi p ử ệ. - Windows s duy trì m t hàng đ i thông ừ ế ị ộ ẽ ộ ợ đi p cho m i ch ệ ỗ ươ ng trình ch y trên nó. - M t ng d ng nh n các thông đi p t hàng đ i thông đi p b ng cách th c thi m t ộ ứ ụ ậ ệ ừ ợ ệ ằ ự ộ đo n mã sau: ạ. - hwnd : Đ nh danh c a c a s mà thông đi p phát sinh. - time : Th i gian đ t thông đi p trong hàng đ i. - pt : T a đ c a chu t khi đ t thông đi p vào hàng đ i ọ ộ ủ ộ ặ ệ ợ. - Ng ặ ệ ư ứ ụ ế ượ ạ c l i thì hàm s tr ẽ ả v m t giá tr khác 0 v i các thông đi p khác. - Vòng l p nh n thông đi p. - WndProc : Hàm x lý thông đi p g i đ n c a s . - MessageBox Hi n th m t thông đi p. - ầ ử ổ ẽ ạ ả GetMesssage Nh n m t thông đi p t hàng đ i thông đi p. - ậ ộ ệ ừ ợ ệ TranslateMessage D ch thông đi p bàn phím. - DispatchMessage G i thông đi p đ n hàm x lý c a s . - ư ệ ợ ệ DefWindowProc Th c hi n vi c x lý m c đ nh các thông đi p. - Ch ươ ng 2. - /*---hàm x lý thông đi p h p tho i. - Th t c x lý thông đi p c a h p tho i ủ ụ ử ệ ủ ộ ạ. - Hình 2.5 Minh h a trao đ i thông đi p qua các đi u khi n ọ ổ ệ ề ể. - Chúng ta b t đ u tìm hi u các ệ ữ ầ ề ể ớ ử ổ ắ ầ ể c ch trao đ i thông đi p đó. - Có th đánh d u m t nút ch n b ng cách g i thông đi p ể ấ ộ ọ ằ ở ệ SendMessage (hwndCtrl ,MB_SETCHECK, 1, 0);. - B i vì các thông đi p c a h p tho i d ng modeless dùng chung v i các ở ệ ủ ộ ạ ạ ớ thông đi p c a c a s ch ệ ủ ử ổ ươ ng trình chính. - *Thêm các đo n ch ạ ươ ng trình x lý menu: Windows phát sinh thông đi p ử ệ. - /*G i thông đi p đ đóng ng d ng l i*/ ở ệ ể ứ ụ ạ SendMessage (hwnd, WM_CLOSE, 0, 0. - Ch ươ ng 3. - message là thông đi p c n g i đ n th t c x lý c a c a s cha. - Dùng đo n ch ạ ươ ng trình sau đ b t t t d u check khi x lý thông đi p ể ậ ắ ấ ử ệ WM_COMMAND đ ượ c g i đ n t các ki u đi u khi n. - Giá tr lParam là handle c a c a ị ủ ử s con g i đ n c a s cha trong thông đi p ổ ở ế ử ổ ệ WM_COMMAND. - C a s cha th ử ổ ử ổ ườ ng g i ở thông đi p này đ n th t c ệ ế ủ ụ DefWindowProc. - Các thông đi p đ n m t l p Edit Text ệ ế ộ ớ. - M t ọ ộ ữ ậ ộ ch ươ ng trình có th thêm ho c xóa các chu i trong list box b ng cách g i các thông đi p đ n ể ặ ỗ ằ ở ệ ế th t c window c a list box. - Xác đ nh m c đã ch n khi nh n đ ị ụ ọ ậ ượ c thông đi p ệ WM_COMMAND t list box b ng ừ ằ hàm.. - Nh n các thông đi p t List Box ậ ệ ừ. - List box g i thông đi p ể ọ ụ ở ệ WM_COMMAND v i các thông s ớ ố wParam, lParam đ n c a s cha v i ý nghĩa : ế ử ổ ớ. - //x lý các thông đi p khi ch n m c trong list box ử ệ ọ ụ case WM_COMMAND. - M t ch ộ ữ ậ ộ ươ ng trình có th thêm ho c xóa các chu i trong Combo box ể ặ ỗ b ng cách g i các thông đi p đ n th t c window c a Combo box. - T ươ ng t , ta có th xóa m t m c trong Combo box b ng thông đi p ự ể ộ ụ ằ ệ CB_DELETESTRING.. - Tuy nhiên, ta cũng có th ch n m c b ng thông đi p ể ọ ụ ằ ệ CB_SETCURSEL.. - Các phím di chuy n ể Giá tr wParam c a thông đi p thanh cu n ị ủ ệ ộ. - B ng 3.4 ả Các giá tr wParam c a thông đi p thanh cu n ị ủ ệ ộ. - Màu c a các thanh cu n đ ủ ộ ượ c th c hi n b ng cách x lý các thông đi p ự ệ ằ ử ệ WM_CTLCOLORSCROLLBAR.. - Ch ươ ng 4. - Ph n sau s gi i thi u k h n v x lý thông đi p. - Ví d , khi m t c a s nh n đ ụ ụ ộ ử ổ ậ ượ ự c s quan tâm và chu n b x lý các thông đi p. - V i tính năng đ ng b hóa c a Windows thì các thông đi p t ợ ủ ứ ụ ớ ồ ộ ủ ệ ừ bàn phím đ m b o đ ả ả ượ c chuy n giao đúng cho các c a s t ể ử ổ ươ ng ng. - X lý thông đi p t bàn phím ử ệ ừ. - Thông đi p t thao tác nh n và nh c a m t phím ệ ừ ấ ả ủ ộ. - Thông đi p có ti p đ u ng là ". - Khi xây d ng m t ch ự ộ ươ ng trình ng d ng, th ứ ụ ườ ng ít quan tâm đ n các thông đi p ế ệ WM_SYSKEYDOWN và thông đi p ệ WM_SYSKEYUP. - Các thông đi p phát sinh t bàn phím ệ ừ. - Sau đây là b ng mô t các thông đi p phát sinh t bàn phím (theo th t Alphabet). - Thông đi p ệ Nguyên nhân phát sinh. - ng d ng.. - WM_CHAR Thông đi p này đ ệ ượ c g i t i c a s có s quan tâm ở ớ ử ổ ự. - khi thông đi p WM_KEYDOWN đã đ ệ ượ c d ch t hàm ị ừ. - WM_GETHOTKEY Ứ ng d ng g i thông đi p này đ xác đ nh m t phím ụ ở ệ ể ị ộ nóng liên quan đ n m t c a s . - Đ g i thông đi p này thì ế ộ ử ổ ể ở ệ dùng hàm SendMessage.. - ạ WM_SYSCHAR Thông đi p này s đ ệ ẽ ượ c g i t i c a s nh n đ ở ớ ử ổ ậ ượ ự c s. - Thông đi p WM_SYSCHAR ch a mã ệ ứ c a phím h th ng. - Thông đi p này xác ệ. - ấ WM_SYSKEYDOWN Thông đi p này đ ệ ượ c g i t i c a s nh n đ ở ớ ử ổ ậ ượ ự c s. - B ng 4.1 ả Mô t thông đi p phát sinh t bàn phím ả ệ ừ. - X lý các thông đi p t thi t b chu t ử ệ ừ ế ị ộ. - Nh ng thông ữ đi p không ph i vùng làm vi c ( ệ ả ệ nonclient-area messages) th ườ ng đ ượ c các ng d ng b qua ứ ụ ỏ không x lý. - Thông đi p chu t trong vùng làm vi c ệ ộ ệ. - B ng 4.8 ả Mô t thông đi p kích thi t b chu t ả ệ ế ị ộ. - Th t c c a s c a ng d ng s nh n đ ủ ụ ử ổ ủ ứ ụ ẽ ậ ượ c thông đi p c a nút chu t gi a n u máy ệ ủ ộ ữ ế tính cài thi t b chu t có 3 nút. - T ế ị ộ ươ ng t nh v y v i thông đi p thi t b chu t ph i, chúng ta ự ư ậ ớ ệ ế ị ộ ả c n có thi t b chu t dùng 2 nút. - Khi đó c a s đ u tiên s nh n đ ủ ử ổ ớ ả ử ổ ầ ẽ ậ ượ c thông đi p nh n chu t ệ ấ ộ. - Thông đi p c a thi t b chu t ngoài vùng làm vi c ệ ủ ế ị ộ ệ. - B ng 4.10 ả Mô t các thông đi p chu t ngoài vùng làm vi c ả ệ ộ ệ. - ứ ụ Khi đó ng d ng ch c n x lý thông đi p WM_TIMER trong hàm x lý c a s ứ ụ ỉ ầ ử ệ ử ử ổ WinProc.. - Dùng thông đi p WM_TIMER ệ. - X lý thông đi p*/ ử ệ switch ( message. - Ch ươ ng 5. - t ể ự ị ừ ươ ng ng. - Tr ườ ng hwndOwner ph i xác đ nh window nh n thông ả ị ậ đi p ệ HELPMSGSTRING mà h p tho i đ a ra ộ ạ ư khi ng ườ i dùng nh n button ấ Help.. - Tr ườ ng lpfnHook tr đ n th t c hook CFHookProc x lý các thông đi p c a h p ỏ ế ủ ụ ử ệ ủ ộ tho i. - Ch ươ ng 6. - S d ng hàm ử ụ BeginPaint và EndPaint khi x lý thông đi p ử ệ WM_PAINT:. - Ch ươ ng 7. - Tr ườ ng h p 1: G i hàm v i lpDistanceToMoveHigh. - Tr ườ ng h p 2: G i hàm v i lpDistanceToMoveHigh. - Tr ị ố ầ ọ ườ ng
Xem thử không khả dụng, vui lòng xem tại trang nguồn hoặc xem
Tóm tắt