text:
Xử lý bàn phím, thiết bị chuột và bộ định thời gian
Chia sẻ: Danh Ngoc | Ngày: | Loại File: PDF | Số trang:33
lượt xem 78
download
Xử lý bàn phím, thiết bị chuột và bộ định thời gian
Các chương trước đã trình bày các thành phần điều khiển chung và hộp thoại. Trong các thành phần này, việc giao tiếp với người dùng đã được các hộp thoại hay các điều khiển xử lý, thường không cần quan tâm lắm việc giao tiếp với các thiết bị đó. Tuy nhiên, lập trình trên Windows cũng cần phải hiểu việc xử lý các thiết bị nhập như bàn phím và thiết bị chuột.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Xử lý bàn phím, thiết bị chuột và bộ định thời gian
- XỬ LÝ BÀN PHÍM, THIẾT BỊ CHUỘT, VÀ BỘ ĐỊNH THỜI GIAN MỞ ĐẦU Các chương trước đã trình bày các thành phần điều khiển chung và hộp thoại. Trong các thành phần này, việc giao tiếp với người dùng đã được các hộp thoại hay các điều khiển xử lý, thường không cần quan tâm lắm việc giao tiếp với các thiết bị đó. Tuy nhiên, lập trình trên Windows cũng cần phải hiểu việc xử lý các thiết bị nhập như bàn phím và thiết bị chuột. Một số ứng dụng như đồ họa hay thao tác văn bản ít nhiều cũng phải viết các xử lý liên quan tới bàn phím và thiết bị chuột. Trong chương này, hai phần đầu sẽ trình bày cách người lập trình sử dụng bàn phím và thiết bị chuột để xây dựng một ứng dụng trên Windows. Thực chất của việc xử lý bàn phím hay thiết bị chuột cũng đơn giản, vì với cơ chế thông điệp của Windows thì ta chỉ cần tìm hiểu các thông điệp được phát sinh từ bàn phím hay từ thiết bị chuột để viết các xử lý tương ứng với từng thiết bị. Phần cuối của chương trình bày một thành phần cũng không kém quan trọng là bộ định thời gian. Windows cung cấp cơ chế này để truyền thông với ứng dụng theo định kì. Với cơ chế này, ứng dụng chỉ cần khai báo một bộ định thời gian với một khoảng thời gian cho trước. Và khi ứng dụng hoạt động thì hệ thống sẽ truyền một tín hiệu cho ứng dụng theo từng khoảng thời gian định kì đã được khai báo. Tóm lại việc tìm hiểu bàn phím, thiết bị chuột, và bộ định thời gian sẽ đem lại sự hiểu biết sâu sắc về thành phần nhập liệu căn bản của một ứng dụng trên Windows. BÀN PHÍM Trong môi trường tương tác đồ hoạ ngày nay có hai thành phần nhập liệu không thể thiếu là bàn phím (keyboard) và thiết bị chuột (mouse). Tuy một số ứng dụng không tiện lợi khi dùng bàn phím, như các chương trình trò chơi (game), hay các mô phỏng đồ họa với thiết bị định vị là thiết bị chuột chẳng hạn, nhưng bàn phím vẫn là thiết bị không thể thay thế của một máy tính. Bàn phím hỗ trợ nhập liệu rất phong phú : một chương trình soạn thảo văn bản thì không thể thiếu việc nhập dữ liệu từ bàn phím. Nếu máy tính bị hư thiết bị chuột bị ta vẫn có thể thực thi các tác vụ của ứng dụng một cách bình thường. Trong phần này chúng ta sẽ tìm hiểu các thông điệp được phát sinh từ bàn phím và cách can thiệp để xử lý chúng. Nền tảng cơ sở về bàn phím
- Windows nhận và xử lý thông tin nhận được từ bàn phím, qua hình thức các thông điệp và gởi cho ứng dụng. Trong ứng dụng Windows các thông điệp sẽ được hệ điều hành chuyển cho hàm xử lý cửa sổ WndProc của ứng dụng. Windows cung cấp 8 loại thông điệp khác nhau để phân biệt các tình huống của các phím được gõ. Tuy nhiên không phải lúc nào chúng ta cũng phải xử lý toàn bộ các thông điệp đó, thông thường thì chỉ cần xử lý một nửa các thông điệp được phát sinh từ bàn phím, và các thông điệp còn lại sẽ được Windows xử lý mặc định. Ví dụ, trong Windows có thể bỏ qua khi nhấn phím Ctrl, Alt, Shift cùng với các phím khác, nếu không muốn chặn để xử lý riêng cho ứng dụng. Trong trường hợp nếu chúng ta muốn chặn để xử lý riêng cho mình, chẳng hạn tạo phím nóng (hotkey) phải chú ý tránh dùng trùng hợp với các phím nóng mà Windows cung cấp. Vì khi đó theo quyền ưu tiên, ứng dụng của chúng ta sẽ xử lý thông điệp đó và sẽ làm cho hệ thống không hoạt động như bình thường. Thành phần giao tiếp chung như hộp thoại (dialog) cũng có nhiều giao tiếp với bàn phím, nhưng chúng ta không cần quan tâm đến việc giao tiếp với bàn phím khi hộp thoại được kích hoạt. Xử lý bàn phím trong hộp thoại thường được giao cho Windows xử lý. Các điều khiển được dùng trong hộp thoại như hộp nhập liệu (edit box), hộp lựa chọn (check box), hay các nút nhấn (button)...điều có khả năng tự xử lý phím gõ vào và chỉ trả lại thông báo của các phím gõ cho cửa sổ cha (parent window). Tuy vậy, với một số các điều khiển nhất định theo ứng dụng ta có thể phải xử lý các thông điệp để tăng cường thêm sức mạnh của thành phần điều khiển này. Tóm lại trong các ứng dụng được cấu thành từ các thành phần điều khiển cơ bản này thì chúng ta không quan tâm đến việc xử lý các thông điệp từ bàn phím. Khái niệm focus trong các ứng dụng trong môi trường Windows Windows đưa ra khái niệm sự quan tâm (focus) cho các ứng dụng được chạy đồng thời trong một thời điểm. Vì chỉ có một bàn phím, nên Windows phải quản lý và phân phối các thông điệp được gõ vào cho các ứng dụng. Thông thường, có các trường hợp trên Windows là : một trong số các ứng dụng đang chạy được kích hoạt (active) hay không có ứng dụng nào chạy. Khi có một chương trình ứng dụng được kích hoạt thì Windows xem như ứng dụng đó nhận được sự quan tâm.Trong một ứng dụng có nhiều các cửa sổ, mỗi thời điểm chỉ một cửa sổ nhận được sự quan tâm. Theo cơ chế này, Windows cung cấp một dạng gọi là hàng đợi thông điệp. Mỗi thông điệp sẽ được đưa vào hàng đợi xử lý thông điệp và được Windows phân phối đến các ứng dụng tương ứng. Hàm DispatchMessage trong vòng lặp xử lý thông điệp sẽ chịu trách nhiệm chuyển thông điệp đến thủ tục xử lý cửa sổ WndProc của các cửa sổ tương ứng. Một cửa sổ có thể xác định được trạng thái quan tâm của mình bằng cách chặn các thông điệp WM_SETFOCUS, WM_KILLFOCUS trong hàm xử lý WndProc. Thông điệp WM_SETFOCUS sẽ cho cửa sổ biết được thời điểm nhận được quan tâm của Windows
- và ngược lại WM_KILLFOCUS sẽ thông báo cho cửa sổ biết được đã mất sự quan tâm từ Windows. Phần sau sẽ giới thiệu kỹ hơn về xử lý thông điệp. Cơ chế hàng đợi và quản lý hàng đợi Trong Windows khi người dùng nhấn và nhả phím trên bàn phím, thì thông qua trình điều khiển thiết bị bàn phím (keyboard driver) sẽ diễn dịch mã quét (scan code) của phần cứng sang hình thức thông điệp. Trước hết Windows sẽ tạm thời lưu trữ thông điệp này vào hàng đợi thông điệp của hệ thống (system message queue). Hàng đợi thông điệp hệ thống của Windows là một hàng đợi duy nhất và quản lý các thao tác tiền xử lý thông tin nhập từ bàn phím và chuột. Windows sẽ lần lượt lấy các thông điệp trong hàng đợi xử lý và sẽ gởi đến hàng đợi của ứng dụng khi ứng dụng đã xử lý xong thông điệp bàn phím và thiết bị chuột trước đó. Lý do mà Windows phải chia thành hai giai đoạn trong quá trình nhận và gởi thông điệp từ bàn phím đến hàng đợi của ứng dụng là do việc đồng bộ hóa với mọi tiến trình. Nếu Windows không quản lý hàng đợi hệ thống thì rất khó đồng bộ các tiến trình của các ứng dụng. 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. Người dùng có thể gõ phím nhanh trong khi thông điệp trước vẫn chưa xử lý xong. Giả sử người dùng muốn chuyển qua ứng dụng khác và nhấn Alt-Tab, khi đó thông điệp bàn phím mới này sẽ được đưa vào hàng đợi của hệ thống và phân phát cho ứng dụng kia chứ không phải đưa vào hàng đợi của ứng dụng. 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 Thao tác căn bản của nhập liệu từ bàn phím là thao tác nhấn và nhả một phím. Khi thao tác nhấn một phím trên bàn phím được thực hiện thì Windows sẽ phát sinh thông điệp WM_KEYDOWN hay WM_SYSKEYDOWN và đưa vào hàng đợi thông điệp của ứng dụng hay cửa sổ nhận được sự quan tâm (focus). Cũng tương tự, khi ta nhả phím thì thông điệp WM_KEYUP hay WM_SYSKEYUP sẽ được hệ điều hành phân phát tới hàng đợi đó. Khi thực hiện thao tác nhập từ bàn phím thì việc nhấn (down) và nhả (up) phải đi đôi với nhau. Tuy nhiên, nếu chúng ta nhấn một phím và giữ luôn thì Windows sẽ phát sinh hàng loạt các thông điệp WM_KEYDOWN hay WM_SYSKEYDOWN, nhưng với thao tác nhả thì chỉ phát sinh một thông điệp WM_KEYUP hay WM_SYSKEYUP. Các thông điệp này sẽ được gởi tuần tự đến các hàm WndProc của các cử sổ nhận được sự quan tâm của Windows. Ngoài ra chúng ta có thể biết được thời điểm mà thông điệp phím được gõ vào lúc nào bằng cách dùng hàm GetMessageTime. Như chúng ta đã thấy trong dòng trên một thao tác nhấn hay thả thì có hai dạng thông điệp khác nhau như WM_KEYDOWN và WM_SYSKEYDOWN của thao tác nhấn, và tương tự đối với thao tác nhả. Thông điệp có tiếp đầu ngữ là "SYS" thường được phát
- sinh khi người dùng nhấn các phím gõ hệ thống. Khi người dùng nhấn phím Alt kết hợp với phím khác thì thường phát sinh thông điệp WM_SYSKEYDOWN và WM_SYSKEYUP. Đối với tổ hợp các phím Alt, chức năng thường là gọi một mục chọn trên trình đơn menu của ứng dụng hay trình đơn hệ thống system menu và ngoài ra dùng để chuyển đổi các tác vụ giữa nhiều ứng dụng khác nhau (phím Alt+Tab hay Alt+Esc), và đóng cửa sổ ứng dụng khi kết hợp với phím chức năng F4. 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. Chúng ta chỉ cần dùng hàm DefWindowProc cuối mỗi hàm WndProc của cửa sổ nhận thông điệp. Windows sẽ chịu trách nhiệm xử lý các thông điệp dạng hệ thống này, nếu có những tác vụ đặc biệt thì chúng ta có thể chặn các thông điệp này để xử lý. Tuy nhiên ta không nên làm như vậy vì khi đó chương trình của chúng ta sẽ chạy không bình thường như các ứng dụng khác. Không phải chúng ta giao phó hoàn toàn cho Windows xử lý các thông điệp hệ thống của ứng dụng, mà Windows sẽ xử lý các thông điệp hệ thống này và đưa ra các thông điệp bình thường khác đến ứng dụng. Ví dụ khi nhấn phím Alt+Tab thì Windows sẽ tạo một thông điệp hệ thống gởi vào hàng đợi của ứng dụng và khi không xử lý thông điệp này thì theo mặc định hàm DefWindowProc sẽ xử lý và trả về thông điệp WM_KILLFOCUS cho ứng dụng, khi đó ứng dụng của chúng ta sẽ dễ dàng xử lý hơn. Tóm lại thông điệp WM_KEYDOWN và WM_KEYUP thường được sinh ra bởi các phím nhấn thông thường không kết hợp với phím Alt. Nếu chương trình của chúng ta bỏ qua không xử lý các thông điệp này thì Windows cũng không tạo ra các thông điệp hay xử lý gì đặc biệt. 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 WM_ACTIVATE Thông điệp này cùng được gởi đến các cửa sổ bị kích hoạt và cửa sổ không bị kích hoạt. Nếu các cửa sổ này cùng một hàng đợi nhập liệu, các thông điệp này sẽ được truyền một cách đồng bộ, đầu tiên thủ tục Windows của cửa sổ trên cùng bị mất kích hoạt, sau đó đến thủ tục của cửa sổ trên cùng được kích hoạt. Nếu các cửa sổ này không nằm trong cùng một hàng đợi thì thông điệp sẽ được gởi một cách không đồng bộ, do đó cửa sổ sẽ được kích hoạt ngay lập tức. WM_APPCOMMAND Thông báo đến cửa sổ rằng người dùng đã tạo một sự kiện lệnh ứng dụng, ví dụ khi người dùng kích vào button sử dụng chuột hay đánh vào một kí tự kích hoạt một lệnh của ứ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 TranslateMessage. Thông điệp WM_CHAR có chứa mã kí tự của phím được nhấn.
- WM_DEADCHAR 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_KEYUP đã được xử lý từ hàm TranslateMessage. Thông điệp này xác nhận mã kí tự khi một phím dead key được nhấn. Phím dead key là phím kết hợp để tạo ra kí tự ngôn ngữ không có trong tiếng anh (xuất hiện trong bàn phím hỗ trợ ngôn ngữ khác tiếng Anh). 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_HOTKEY Thông điệp này được gởi khi người dùng nhấn một phím nóng được đăng kí trong RegisterHotKey. WM_KEYDOWN Thông điệp này được gởi cho cửa sổ nhận được sự quan tâm khi người dùng nhấn một phím trên bàn phím. Phím này không phải phím hệ thống (Phím không có nhấn phím Alt). Thông điệp này được gởi cho cửa sổ nhận được sự quan tâm khi người dùng nhả một phím đã được nhấn trước đó.Phím này không WM_KEYUP phải phím hệ thống (Phím không có nhấn phím Alt). WM_KILLFOCUS Thông điệp này được gởi tới cửa sổ đang nhận được sự quan tâm trước khi nó mất quyền này. WM_SETFOCUS Thông điệp này được gởi tới cửa sổ sau khi cửa sổ nhận được sự quan tâm của Windows WM_SETHOTKEY Ứng dụng sẽ gởi thông điệp này đến cửa sổ liên quan đến phím nóng, khi người dùng nhấn một phím nóng thì cửa sổ tương ứng liên quan tới phím nóng này sẽ được kích hoạt. WM_SYSCHAR Thông điệp này sẽ được gởi tới cửa sổ nhận được sự quan tâm khi hàm TranslateMesage xử lý xong thông điệp WM_SYSKEYDOWN. Thông điệp WM_SYSCHAR chứa mã cửa phím hệ thống. Phím hệ thống là phím có chứa phím Alt và tổ hợp phím khác. WM_SYSDEADCHAR Thông điệp này được gởi tới cửa sổ nhận được sự quan tâm khi một thông điệp WM_SYSKEYDOWN được biên dịch trong hàm TranslateMessage. Thông điệp này xác nhận mã kí tự của phím hệ thống deadkey được nhấn. WM_SYSKEYDOWN Thông điệp này được gởi tới cửa sổ nhận được sự quan tâm khi người dùng nhấn phím F10 hay nhấn Alt trước khi nhấn phím khác. Thông điệp này cũng được gởi khi không có cửa sổ nào nhận được sự quan tâm và lúc này thì cửa sổ nhận được là cửa sổ đang được
- kích hoạt (Active). WM_SYSKEYUP Thông điệp này được gởi tới cửa sổ nhận được sự quan tâm khi người dùng nhấn một phím mà trước đó đã giữ phím Alt. Cũng tương tự nếu không có cửa sổ nào nhận được sự quan tâm thì thông điệp này sẽ được gởi cho cửa sổ đang được kích hoạt. Bảng Mô tả thông điệp phát sinh từ bàn phím Mã phím ảo (Virtual key code) Windows cung cấp khái niệm phím ảo nhằm tách rời với thiết bị bàn phím hay nói cách khác là tiến tới độc lập thiết bị với bàn phím. Khi một phím được nhấn thì phần cứng vật lý phát sinh ra một mã quét (scan code), trên bàn phím tương thích IBM các phím được gán với các mã ví dụ phím W là 17, phím E là 18, và phím R là 19... Cách sắp xếp này thuần túy dựa trên vị trí vật lý của phím trên bàn phím. Những người xây dựng nên Windows nhận thấy rằng nếu dùng trực tiếp mã quét thì sẽ không thích hợp khi bị lệ thuộc vào bàn phím hiện tại và tương lai. Do đó họ cố xử lý bàn phím bằng cách độc lập thiết bị hơn, bằng cách tạo ra một bảng định nghĩa tập giá trị phím tổng quát mà sau này được gọi là mã phím ảo. Một số giá trị bàn phím ảo mà ta không thấy xuất hiện trên bàn phím IBM tương thích nhưng có thể tìm thấy chúng trong bàn phím của các nhà sản xuất khác hay chúng được để dành cho bàn phím trong tương lai. Các giá trị của phím ảo này được định nghĩa trong tập tin tiêu đề WINUSER.H và được bắt đầu với các tiếp đầu ngữ VK_xxxxx. sau đây là bảng mô tả các phím ảo thông dụng trong Windows giao tiếp với bàn phím IBM tương thích. Thập Thập Hằng phím định nghĩa Windows Bàn phím phân lục trong WINUSER.H dùng IBM tương phân thích 1 01 VK_LBUTTON Nút chuột trái 2 02 VK_RBUTTON Nút chuột phải 3 03 VK_CANCEL X Ctrl –Break 4 04 VK_MBUTTON Nút chuột giữa Bảng Mô tả các phím ảo Các thông điệp trên chỉ được nhận khi dùng chuột, ta không bao giờ nhận được thông điệp trên nếu gõ từ bàn phím. Không nên dùng phím Ctrl–Break trong ứng dụng Windows, phím này thường được ngắt các ứng dụng trong DOS.
- Những giá trị phím ảo tiếp sai dành cho các phím Backspace, Tab, Enter, Escape, và Spacebar được dùng nhiều trong chương trình Windows. Thập Thập Hằng phím định Windows Bàn phím IBM phân lục nghĩa trong dùng tương thích phân WINUSER.H 8 08 VK_BACK X Backspace 9 09 VK_TAB X Tab 12 0C VK_CLEAR X Phím số 5 trong NumPad với đền Numlock tắt. 13 0D VK_RETURN X Enter (cho hai phím) 16 10 VK_SHIFT X Shift (cho hai phím) 17 11 VK_CONTROL X Ctrl (cho hai phím) 18 12 VK_MENU X Alt (cho hai phím) 19 13 VK_PAUSE X Pause 20 14 VK_CAPITAL X Caps Lock 27 1B VK_ESCAPE X Esc 32 20 VK_SPACE X Spacebar Bảng Mô tả các phím ảo Bảng mô tả phím ảo tiếp sau đây là các phím thường được sử dụng nhiều trong Windows. Thập Thập Hằng phím định Windows Bàn phím IBM phân lục nghĩa trong dùng tương thích phân WINUSER.H 33 21 VK_PRIOR X Page Up 34 22 VK_NEXT X Page Down
- 35 23 VK_END X End 36 24 VK_HOME X Home 37 25 VK_LEFT X Phím trái 38 26 VK_UP X Phím mũi tên lên 39 27 VK_RIGHT X Phím phải 40 28 VK_DOWN X Phím xuống 41 29 VK_SELECT - 42 2A VK_PRINT - 43 2B VK_EXECUTE - 44 2C VK_SNAPHOT Print Screen 45 2D VK_INSERT X Insert 46 2E VK_DELETE X Delete 47 2F VK_HELP Bảng Mô tả các phím ảo (tiếp theo) Một số các phím ảo như VK_SELECT, VK_PRINT, VK_EXECUTE, hay VK_HELP thường chỉ xuất hiện trong các bàn phím giả lập mà chúng ta ít khi nhìn thấy. Tiếp sau là mã phím ảo của các phím số và phím chữ trên bàn phím chính. Trong bàn phím bổ sung phím Num Pad được qui định riêng. Thập Thập Hằng phím định nghĩa Windows Bàn phím IBM tương thích phân lục trong WINUSER.H dùng phân 48-57 30-39 Không X Từ phím 0 đến phím 9 trên bàn phím chính 65-90 41-5A Không X Từ phím A đến phím Z. Bảng Mô tả các phím chữ và số trên bàn phím chính
- Mã phím ảo trong bảng trên bằng với mã ASCII của kí tự mà phím thể hiện. Trong các ứng dụng Windows thường không dùng mã phím ảo này mà thay vào đó ứng dụng chỉ xử lý thông điệp kí tự dành cho kí tự có mã ASCII. Cuối cùng là mã phím ảo của bàn phím mở rộng Num Pad (bên phải của bàn phím) và các phím chức năng (F1, F2, F3...). Thập Thập lục Hằng phím định nghĩa Windows Bàn phím IBM tương phân phân trong WINUSER.H dùng thích 96-105 60-69 VK_NUMPAD0 đến Phím 0 – 9 khi đèn VK_NUMPAD9 Num Lock được bật 106 6A VK_MULTIPLY Phím * 107 6B VK_ADD Phím + 108 6C VK_SEPARATOR 109 6D VK_SUBTRACT Phím - 110 6E VK_DECIMAL Phím . 111 6F VK_DIVIDE Phím / 112- 70-79 VK_F1 đến VK_F10 X Phím F1 đến F10 121 122- 7A-87 VK_F11 đến VK_F24 Phím F11 đến F24 135 144 90 VK_NUMLOCK Num Lock 145 91 VK_SCROLL Scroll Lock Bảng Mô tả các phím bổ sung Một số các phím ảo như F13- F24 thì được Windows tạo ra phòng hờ cho các bàn phím sau này. Thường thì ứng dụng Windows chỉ dùng phím F1 – F10 mà thôi. Các tham số wParam và lPram trong thông điệp phát sinh từ bàn phím Trong thông điệp phím gõ (WM_KEYDOWN, WM_KEYUP, WM_SYSKEYDOWN, và WM_SYSKEYUP) thì tham số wParam sẽ nhận giá trị mã phím ảo. Còn tham số lParam sẽ chứa thông tin chi tiết về phím được gõ vào. Bảng sau mô tả các thông tin chứa trong 32 bit của tham số lParam.
- Bit nhận Nội dung dạng 0-15 Chứa số lần của phím được nhấn xuống. Nếu chúng ta chỉ nhấn rồi nhả ra thì giá trị này bằng 1, nếu chúng ta giữ luôn phím thì số lập này sẽ tăng theo. 16-23 Chứa mã quét OEM (Original Equipment Manufacturer) được phát sinh từ phần cứng, ta hầu như không quan tâm đến thông tin này 24 Cờ này có giá trị 1 khi phím được nhấn là phím thuộc nhóm phím mở rộng trên bàn phím IBM tương thích hay phím Alt, Ctrl bên phải bàn phím được nhấn. Windows ít quan tâm đến giá trị của cờ này 29 Mã ngữ cảnh của phím (Context code), nếu cờ này có giá trị bằng 1 thì phím Alt được nhấn, điều này tương ứng với thông điệp WM_SYSKEYDOWN hay WM_SYSKEYUP được phát sinh 30 Trạng thái của phím trước đó, trường này bằng 0 cho biết phím trước đó ở trạng thái nhả, và 1 nếu phím trước đó ở trạng thái nhấn. 31 Trạng thái dịch chuyển của phím, cờ này bằng 0 nếu phím đang được nhấn, và bằng 1 nếu phím được nhấn. Bảng 4.7 Mô tả thông tin chứa trong tham số lParam Đoạn chương trình minh họa Đoạn chương trình dưới đây minh họa một chương trình nhỏ nhập các kí tự từ bàn phím và xuất ra màn hình. #define BUFSIZE 65535; #define SHIFTED 0x8000; LRESULT CALLBACK WndProc( HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam ) { HDC hdc; // Thiết bị ngữ cảnh TEXTMETRIC tm; // Cấu trúc metric của văn bản
- static DWORD dwCharX; // Bề ngang của kí tự static DWORD dwCharY; // Chiều dài của kí tự static DWORD dwClientX; // Bề ngang của vùng làm việc static DWORD dwClientY; // Chiều dài của vùng làm việc static DWORD dwLineLen; // Chiều dài của một dòng static DWORD dwLines; // Số dòng văn bản trong vùng làm việc static int nCaretPosX = 0; // Tọa độ x của caret static int nCaretPosY = 0; // Tọa độ y của caret static int nCharWidth = 0; // Bề dày của kí tự static int cch = 0; // Số kí tự trong buffer static int nCurChar = 0; // Chỉ đến kí tự hiện thời trong buffer static PTCHAR pchInputBuf; // Kí tự tạm đưa vào buffer int i, j; // Biến lặp int cCR = 0; // Số kí tự xuống dòng int nCRIndex = 0; // Chỉ đến kí tự xuống dòng cuối cùng int nVirtKey; // Mã phím ảo TCHAR szBuf [128]; // Buffer tạm TCHAR ch; // Kí tự PAINTSTRUCT ps; // Dùng cho hàm BeginPaint RECT rc; // Hình chữ nhật trong hàm DrawText SIZE sz; // Kích thước của chuỗi COLORREF crPrevText; // Màu của văn bản COLORREF crPrevBk; // Màu nền switch ( message ) {
- case WM_CREATE: /* Lấy thông tin font hiện thời */ hdc = GetDC ( hWnd ); GetTextMetrics ( hdc, &tm ); ReleaseDC ( hWnd, hdc ); dwCharX = tm.tmAveCharWidth; dwCharY = tm.tmHeight; /* Cấp phát bộ nhớ đệm để lưu kí tự nhập vào */ pchInputBuf = (LPTSTR)GlobalAlloc( GPTR,BUFSIZE * sizeof ( TCHAR ) ); return 0; case WM_SIZE: /* Lưu giữ kích thước của vùng làm việc */ dwClientX = LOWORD ( lParam ); dwClientY = HIWORD ( lParam ); /* Tính kích thước tối đa của một dòng và số dòng tối đa trong vùng làm việc */ dwLineLen = dwClientX - dwCharX; dwLines = dwClientY / dwCharY; break; case WM_SETFOCUS: /* Tạo và hiển thị caret khi cửa sổ nhận được sự quan tâm */ CreateCaret ( hWnd, ( HBITMAP ) 1, 0, dwCharY ); SetCaretPos ( nCaretPosX, nCaretPosY * dwCharY ); ShowCaret ( hWnd ); break;
- case WM_KILLFOCUS: /*Ẩn caret và hủy khi cửa sổ không còn nhận được sự quan tâm */ HideCaret ( hWnd ); DestroyCaret ( ); break; case WM_CHAR: switch ( wParam ) { case 0x08: // Backspace case 0x0A: // Linefeed case 0x1B: // Escape MessageBeep( ( UINT ) –1 ); return 0; case 0x09: // tab /* Chuyển phím tab thành 4 kí tự trắng liên tục nhau */ for ( i = 0; i < 4; i ++ ) SendMessage (hWnd, WM_CHAR, 0x20, 0); return 0; case 0x0D: // Xuống dòng /* Lưu kí tự xuống dòng và tạo dòng mới đưa caret xuống vị trí mới */ pchInputBuf [ cch++ ] = 0x0D; nCaretPosX = 0; nCaretPosY += 1; break;
- default: // Xử lý những kí tự có thể hiển thị được ch = ( TCHAR ) wParam; HideCaret ( hWnd ); /* Lấy bề dày của kí tự và xuất ra */ hdc = GetDC ( hWnd ); GetCharWidth32 ( hdc, (UINT) wParam, (UINT)wParam, &nCharWidth ); TextOut(hdc, nCaretPosX, nCaretPosY*dwCharY, &ch, 1); ReleaseDC ( hWnd, hdc ); /* Lưu kí tự vào buffer */ pchInputBuf [ cch++ ] = ch; /* Tính lại vị trí ngang của caret. Nếu vị trí này tới cuối dòng thì chèn thêm kí tự xuống dòng và di chuyển caret đến dòng mới */ nCaretPosX += nCharWidth; if ( ( DWORD ) nCaretPosX > dwLineLen ) { nCaretPosX = 0; pchInputBuf [ cch++ ] = 0x0D; ++nCaretPosY; } nCurChar = cch; ShowCaret ( hWnd ); break; } SetCaretPos ( nCaretPosX, nCaretPosY * dwCharY ); break;
- case WM_KEYDOWN: switch ( wParam ) { case VK_LEFT: // LEFT arrow /* Caret di chuyển qua trái và chỉ đến đầu dòng */ if ( nCaretPosX > 0 ) { HideCaret ( hWnd ); /* Tính toán lại vị trí của caret khi qua trái */ ch = pchInputBuf [--nCurChar ]; hdc = GetDC ( hWnd ); GetCharWidth32 ( hdc, ch, ch, &nCharWidth ); ReleaseDC ( hWnd, hdc ); nCaretPosX=max(nCaretPosX-nCharWidth,0 ); ShowCaret ( hWnd ); } break; case VK_RIGHT: // RIGHT arrow /* Di chuyển caret sang phải */ if (nCurChar < cch) { HideCaret ( hWnd ); /* Tính toán lại vị trí của caret khi sang phải */ ch = pchInputBuf [ nCurChar ]; if ( ch == 0x0D )
- { nCaretPosX = 0; nCaretPosY++; } /* Nếu kí tự không phải là enter thì kiểm tra xem phím shift có được nhấn hay không. Nếu có nhấn thì đổi màu và xuất ra màn hình. */ else { hdc = GetDC ( hWnd ); nVirtKey = GetKeyState ( VK_SHIFT ); if ( nVirtKey & SHIFTED ) { crPrevText=SetTextColor( hdc,RGB (255, 255, 255) ); crPrevBk= SetBkColor(hdc,RGB(0,0,0)); TextOut(hdc,nCaretPosX,nCaretPosY*dwCharY, &ch,1 ); SetTextColor ( hdc, crPrevText ); SetBkColor ( hdc, crPrevBk ); } GetCharWidth32(hdc,ch,ch,&nCharWidth); ReleaseDC ( hWnd, hdc ); nCaretPosX = nCaretPosX + nCharWidth; } nCurChar++; ShowCaret ( hWnd ); break;
- } break; case VK_UP: // Phím mũi tên lên case VK_DOWN: // Phím mũi tên xuống MessageBeep ( (UINT) –1 ); return 0; case VK_HOME: // Phím home /* Thiết lập vị trí của caret ở dòng đầu tiên */ nCaretPosX = nCaretPosY = 0; nCurChar = 0; break; case VK_END: // Phím end /* Di chuyển về cuối văn bản và lưu vị trí của kí tự xuống dòng cuối */ for ( i=0; i < cch; i++ ) { if ( pchInputBuf [ i ] == 0x0D ) { cCR++; nCRIndex = i + 1; } } nCaretPosY = cCR; /* Chép tất cả các kí tự từ kí tự xuống dòng cuối đến kí tự hiện thời vừa nhập từ bàn phím vào bộ nhớ đệm. */ for ( i = nCRIndex, j = 0; i < cch; i++, j++ ) szBuf [ j ] = pchInputBuf [ i ];
- szBuf [ j ] = TEXT ( '\0' ); /* Tính vị trí dọc của caret */ hdc = GetDC ( hWnd ); GetTextExtentPoint32(hdc,szBuf, lstrlen(szBuf), &sz ); nCaretPosX = sz.cx; ReleaseDC ( hWnd, hdc ); nCurChar = cch; break; default: break; } SetCaretPos( nCaretPosX, nCaretPosY*dwCharY ); break; case WM_PAINT: if ( cch == 0 ) break; hdc = BeginPaint ( hWnd, &ps ); HideCaret ( hWnd ); SetRect ( &rc, 0, 0, dwLineLen, dwClientY ); DrawText ( hdc, pchInputBuf, -1, &rc, DT_LEFT ); ShowCaret ( hWnd ); EndPaint ( hWnd, &ps ); break; case WM_DESTROY: PostQuitMessage ( 0 );
- /* Giải phóng buffer */ GlobalFree ( ( HGLOBAL) pchInputBuf ); UnregisterHotKey ( hWnd, 0xAAAA ); break; default: return DefWindowProc ( hWnd, message, wParam, lParam ); } return NULL; } THIẾT BỊ CHUỘT Trong một môi trường giao tiếp đồ họa, việc sử dụng thiết bị định vị chuột là hết sức cần thiết. Nhờ thiết bị chuột ta có thể di chuyển đến một điểm bất kì trên khung màn hình và thực hiện thao tác kích các nút chuột. Đối với một số ứng dụng đồ họa không quá phức tạp thì công cụ để thực hiện chủ yếu là chuột, riêng đối với các ứng dụng đòi hỏi sự phức tạp khi vẽ thì người ta dùng bút vẽ. Với Windows thì thiết bị chuột là một thành phần quan trọng, nếu chúng ta bỏ thiết bị chuột thì vẫn khởi động bình thường và các chương trình vẫn có thể chạy được. Tuy nhiên khi đó ta sẽ lúng túng nhiều khi xử lý các ứng dụng trực quan tương tác với người dùng theo tọa độ hay định vị. Cũng tương tự như bàn phím, thiết bị chuột cũng được dùng để nhập dữ liệu từ người dùng vào ứng dụng nhưng dữ liệu đây không phải là văn bản như khi nhập từ bàn phím mà là các thao tác vẽ hay xử lý các đối tượng đồ họa. Cơ bản về thiết bị chuột trong Windows Về cơ bản Windows hỗ trợ các loại thiết bị chuột có một nút, hai và ba nút, ngoài ra Windows còn có thể dùng thiết bị khác như joystick hay bút vẽ để bắt chước thiết bị chuột. Các ứng dụng trong Windows thường né việc dùng các nút thứ hai và nút thứ ba, để có thể sử dụng tốt trên các thiết bị chuột chỉ có một nút. Thông thường nút thứ hai của thiết bị chuột phải được dùng cho chức năng gọi thực đơn ngữ cảnh (context menu). Theo nguyên tắc, ta có thể kiểm tra xem có tồn tại thiết bị chuột hay không bằng cách dùng hàm GetSystemMetrics. fMouse = GetSystemMetrics( SM_MOUSEPRESENT );
- Giá trị trả về fMouse là TRUE (1) nếu có thiết bị chuột được cài đặt, và ngược lại bằng FALSE (0) nếu thiết bị chuột không được cài đặt vào máy. Ta cũng có thể kiểm tra số nút của thiết bị chuột bằng cách dùng hàm trên theo câu lệnh sau: nButton = GetSystemMetrics( SM_CMOUSEBUTTONS ); Giá trị trả về là 0 nếu không cài đặt thiết bị chuột, tuy nhiên dưới Windows 98 giá trị trả về là 2 nếu chưa cài đặt thiết bị chuột. Khi người dùng di chuyển thiết bị chuột thì Windows cũng di chuyển một ảnh bitmap nhỏ trên màn hình, ảnh này được gọi là con trỏ chuột (mouse cursor). Con trỏ chuột này có một điểm gọi là điểm nóng (hot spot) , điểm nóng này nằm trong hình bitmap, và do người tạo con trỏ chuột quyết định. Khi chúng ta tham chiếu tới một vị trí của con trỏ chuột thì chính là chúng ta đang dùng tọa độ của điểm nóng này. Windows hỗ trợ một số các con trỏ chuột chuẩn, mà người lập trình chỉ cần gọi ra và dùng chứ không cần phải tạo các tập tin *.cur. Ở trạng thái bình thường thì một ứng dụng trong Windows thường dùng con trỏ chuột IDC_ARROW được định nghĩa trong WINUSER.H, điểm nóng chính là điểm trên cùng của mũi tên. Ngoài ra con trỏ chuột còn cho biết trạng thái của ứng dụng, ví dụ một ứng dụng đang xử lý cần một khoảng thời gian thì con trỏ chuột xuất hiện hình đồng hồ cát (IDC_WAIT). Khi đó hầu như các chức năng giao tiếp với người dùng điều phải hoãn đến khi xử lý hoàn thành. Trong lớp cửa sổ ta có trường định nghĩa con trỏ chuột cho ứng dụng như sau wndclass.hCursor = LoadCursor ( NULL, IDC_ARROR); Với thiết bị chuột ta có thể có các hành động như sau: • Kích chuột : nhấn và thả một nút chuột. • Kích đúp chuột : nhấn và thả chuột nhanh (nhấn 2 lần nhanh). • Kéo : di chuyển chuột trong khi vẫn nắm giữ một nút. Xử lý các thông điệp từ thiết bị chuột Các thông điệp được tạo từ chuột rất khác với thông điệp của bàn phím, một thủ tục cửa sổ sẽ nhận thông điệp chuột bất cứ khi nào thiết bị chuột di chuyển qua cửa sổ hay kích vào trong cửa sổ, thậm chí cả trong trường hợp cửa sổ không được kích hoạt hay không nhận được sự quan tâm. Windows định nghĩa 21 thông điệp được phát sinh từ thiết bị chuột. Trong số đó có đến 11 thông điệp không liên quan đến vùng làm việc (client area). 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ý.
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Khái niệm căn bản về thiết bị mạng
4 p | 1239 | 596
-
Bộ vi xử lý (CPU)
27 p | 427 | 197
-
Bàn phím_Thiết bị ra vào_chương 8
10 p | 877 | 177
-
Chương 7 Các thiết bị I/O (Các thiết bị ngoại vi)
80 p | 413 | 135
-
Cơ bản: Bộ vi xử lý – CPU
18 p | 276 | 123
-
Bộ vi xử lý CPU
4 p | 235 | 86
-
Cam card và thiết bị ngoại vi
8 p | 173 | 51
-
Bài giảng Kỹ thuật vi xử lý: Chương 4 - Nguyễn Văn Thọ
19 p | 109 | 29
-
Tìm hiểu về số hiệu bộ xử lý Intel® - Intel Việt Nam
7 p | 34 | 17
-
Bài giảng môn Phần cứng máy tính: Bài 7 - Thiết bị ngoại và chuẩn giao tiếp
128 p | 36 | 13
-
Những lời khuyên cho việc lắp đặt bộ xử lý, bộ nhớ, các cáp ổ đĩa
11 p | 119 | 12
-
Những thiết bị nên và không nên nâng cấp
3 p | 47 | 11
-
Bài giảng Kiến trúc máy tính - Chương 4: Bộ xử lý (the processor)
69 p | 21 | 4
-
Giáo trình Kiến trúc máy vi tính: Phần 2
85 p | 14 | 3
-
Bài giảng Cấu trúc máy tính - Chương 7: Các thiết bị I/O (Các thiết bị ngoại vi)
80 p | 6 | 3
-
Bài giảng Kiến trúc máy tính: Chương 2 - TS. Vũ Đức Lung
50 p | 16 | 2
-
Bài giảng Nhập môn tin học: Chương 2 - Trần Thị Kim Chi
54 p | 12 | 1

markdown:
# Xử lý bàn phím, thiết bị chuột và bộ định thời gian
Chia sẻ: Danh Ngoc | Ngày: | Loại File: PDF | Số trang:33
lượt xem 78
download
![](http://image.tlvnimg.com/document/thumbnail/2010/20100509/nuoiheocuoivo/80x100/199713_366.jpg)
##
Xử lý bàn phím, thiết bị chuột và bộ định thời gian
[Vui lòng tải xuống để xem tài liệu đầy đủ](javascript:void(0);)
Download
![](http://static.tlvnimg.com/b2013az/templates/version1/default/images/down16x21.png)
Các chương trước đã trình bày các thành phần điều khiển chung và hộp thoại. Trong các thành phần này, việc giao tiếp với người dùng đã được các hộp thoại hay các điều khiển xử lý, thường không cần quan tâm lắm việc giao tiếp với các thiết bị đó. Tuy nhiên, lập trình trên Windows cũng cần phải hiểu việc xử lý các thiết bị nhập như bàn phím và thiết bị chuột.
Bình luận(0)
[Đăng nhập để gửi bình luận!](javascript:void(0);)
##
Nội dung Text: Xử lý bàn phím, thiết bị chuột và bộ định thời gian
- XỬ LÝ BÀN PHÍM, THIẾT BỊ CHUỘT, VÀ BỘ ĐỊNH THỜI GIAN MỞ ĐẦU Các chương trước đã trình bày các thành phần điều khiển chung và hộp thoại. Trong các thành phần này, việc giao tiếp với người dùng đã được các hộp thoại hay các điều khiển xử lý, thường không cần quan tâm lắm việc giao tiếp với các thiết bị đó. Tuy nhiên, lập trình trên Windows cũng cần phải hiểu việc xử lý các thiết bị nhập như bàn phím và thiết bị chuột. Một số ứng dụng như đồ họa hay thao tác văn bản ít nhiều cũng phải viết các xử lý liên quan tới bàn phím và thiết bị chuột. Trong chương này, hai phần đầu sẽ trình bày cách người lập trình sử dụng bàn phím và thiết bị chuột để xây dựng một ứng dụng trên Windows. Thực chất của việc xử lý bàn phím hay thiết bị chuột cũng đơn giản, vì với cơ chế thông điệp của Windows thì ta chỉ cần tìm hiểu các thông điệp được phát sinh từ bàn phím hay từ thiết bị chuột để viết các xử lý tương ứng với từng thiết bị. Phần cuối của chương trình bày một thành phần cũng không kém quan trọng là bộ định thời gian. Windows cung cấp cơ chế này để truyền thông với ứng dụng theo định kì. Với cơ chế này, ứng dụng chỉ cần khai báo một bộ định thời gian với một khoảng thời gian cho trước. Và khi ứng dụng hoạt động thì hệ thống sẽ truyền một tín hiệu cho ứng dụng theo từng khoảng thời gian định kì đã được khai báo. Tóm lại việc tìm hiểu bàn phím, thiết bị chuột, và bộ định thời gian sẽ đem lại sự hiểu biết sâu sắc về thành phần nhập liệu căn bản của một ứng dụng trên Windows. BÀN PHÍM Trong môi trường tương tác đồ hoạ ngày nay có hai thành phần nhập liệu không thể thiếu là bàn phím (keyboard) và thiết bị chuột (mouse). Tuy một số ứng dụng không tiện lợi khi dùng bàn phím, như các chương trình trò chơi (game), hay các mô phỏng đồ họa với thiết bị định vị là thiết bị chuột chẳng hạn, nhưng bàn phím vẫn là thiết bị không thể thay thế của một máy tính. Bàn phím hỗ trợ nhập liệu rất phong phú : một chương trình soạn thảo văn bản thì không thể thiếu việc nhập dữ liệu từ bàn phím. Nếu máy tính bị hư thiết bị chuột bị ta vẫn có thể thực thi các tác vụ của ứng dụng một cách bình thường. Trong phần này chúng ta sẽ tìm hiểu các thông điệp được phát sinh từ bàn phím và cách can thiệp để xử lý chúng. Nền tảng cơ sở về bàn phím
- Windows nhận và xử lý thông tin nhận được từ bàn phím, qua hình thức các thông điệp và gởi cho ứng dụng. Trong ứng dụng Windows các thông điệp sẽ được hệ điều hành chuyển cho hàm xử lý cửa sổ WndProc của ứng dụng. Windows cung cấp 8 loại thông điệp khác nhau để phân biệt các tình huống của các phím được gõ. Tuy nhiên không phải lúc nào chúng ta cũng phải xử lý toàn bộ các thông điệp đó, thông thường thì chỉ cần xử lý một nửa các thông điệp được phát sinh từ bàn phím, và các thông điệp còn lại sẽ được Windows xử lý mặc định. Ví dụ, trong Windows có thể bỏ qua khi nhấn phím Ctrl, Alt, Shift cùng với các phím khác, nếu không muốn chặn để xử lý riêng cho ứng dụng. Trong trường hợp nếu chúng ta muốn chặn để xử lý riêng cho mình, chẳng hạn tạo phím nóng (hotkey) phải chú ý tránh dùng trùng hợp với các phím nóng mà Windows cung cấp. Vì khi đó theo quyền ưu tiên, ứng dụng của chúng ta sẽ xử lý thông điệp đó và sẽ làm cho hệ thống không hoạt động như bình thường. Thành phần giao tiếp chung như hộp thoại (dialog) cũng có nhiều giao tiếp với bàn phím, nhưng chúng ta không cần quan tâm đến việc giao tiếp với bàn phím khi hộp thoại được kích hoạt. Xử lý bàn phím trong hộp thoại thường được giao cho Windows xử lý. Các điều khiển được dùng trong hộp thoại như hộp nhập liệu (edit box), hộp lựa chọn (check box), hay các nút nhấn (button)...điều có khả năng tự xử lý phím gõ vào và chỉ trả lại thông báo của các phím gõ cho cửa sổ cha (parent window). Tuy vậy, với một số các điều khiển nhất định theo ứng dụng ta có thể phải xử lý các thông điệp để tăng cường thêm sức mạnh của thành phần điều khiển này. Tóm lại trong các ứng dụng được cấu thành từ các thành phần điều khiển cơ bản này thì chúng ta không quan tâm đến việc xử lý các thông điệp từ bàn phím. Khái niệm focus trong các ứng dụng trong môi trường Windows Windows đưa ra khái niệm sự quan tâm (focus) cho các ứng dụng được chạy đồng thời trong một thời điểm. Vì chỉ có một bàn phím, nên Windows phải quản lý và phân phối các thông điệp được gõ vào cho các ứng dụng. Thông thường, có các trường hợp trên Windows là : một trong số các ứng dụng đang chạy được kích hoạt (active) hay không có ứng dụng nào chạy. Khi có một chương trình ứng dụng được kích hoạt thì Windows xem như ứng dụng đó nhận được sự quan tâm.Trong một ứng dụng có nhiều các cửa sổ, mỗi thời điểm chỉ một cửa sổ nhận được sự quan tâm. Theo cơ chế này, Windows cung cấp một dạng gọi là hàng đợi thông điệp. Mỗi thông điệp sẽ được đưa vào hàng đợi xử lý thông điệp và được Windows phân phối đến các ứng dụng tương ứng. Hàm DispatchMessage trong vòng lặp xử lý thông điệp sẽ chịu trách nhiệm chuyển thông điệp đến thủ tục xử lý cửa sổ WndProc của các cửa sổ tương ứng. Một cửa sổ có thể xác định được trạng thái quan tâm của mình bằng cách chặn các thông điệp WM_SETFOCUS, WM_KILLFOCUS trong hàm xử lý WndProc. Thông điệp WM_SETFOCUS sẽ cho cửa sổ biết được thời điểm nhận được quan tâm của Windows
- và ngược lại WM_KILLFOCUS sẽ thông báo cho cửa sổ biết được đã mất sự quan tâm từ Windows. Phần sau sẽ giới thiệu kỹ hơn về xử lý thông điệp. Cơ chế hàng đợi và quản lý hàng đợi Trong Windows khi người dùng nhấn và nhả phím trên bàn phím, thì thông qua trình điều khiển thiết bị bàn phím (keyboard driver) sẽ diễn dịch mã quét (scan code) của phần cứng sang hình thức thông điệp. Trước hết Windows sẽ tạm thời lưu trữ thông điệp này vào hàng đợi thông điệp của hệ thống (system message queue). Hàng đợi thông điệp hệ thống của Windows là một hàng đợi duy nhất và quản lý các thao tác tiền xử lý thông tin nhập từ bàn phím và chuột. Windows sẽ lần lượt lấy các thông điệp trong hàng đợi xử lý và sẽ gởi đến hàng đợi của ứng dụng khi ứng dụng đã xử lý xong thông điệp bàn phím và thiết bị chuột trước đó. Lý do mà Windows phải chia thành hai giai đoạn trong quá trình nhận và gởi thông điệp từ bàn phím đến hàng đợi của ứng dụng là do việc đồng bộ hóa với mọi tiến trình. Nếu Windows không quản lý hàng đợi hệ thống thì rất khó đồng bộ các tiến trình của các ứng dụng. 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. Người dùng có thể gõ phím nhanh trong khi thông điệp trước vẫn chưa xử lý xong. Giả sử người dùng muốn chuyển qua ứng dụng khác và nhấn Alt-Tab, khi đó thông điệp bàn phím mới này sẽ được đưa vào hàng đợi của hệ thống và phân phát cho ứng dụng kia chứ không phải đưa vào hàng đợi của ứng dụng. 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 Thao tác căn bản của nhập liệu từ bàn phím là thao tác nhấn và nhả một phím. Khi thao tác nhấn một phím trên bàn phím được thực hiện thì Windows sẽ phát sinh thông điệp WM_KEYDOWN hay WM_SYSKEYDOWN và đưa vào hàng đợi thông điệp của ứng dụng hay cửa sổ nhận được sự quan tâm (focus). Cũng tương tự, khi ta nhả phím thì thông điệp WM_KEYUP hay WM_SYSKEYUP sẽ được hệ điều hành phân phát tới hàng đợi đó. Khi thực hiện thao tác nhập từ bàn phím thì việc nhấn (down) và nhả (up) phải đi đôi với nhau. Tuy nhiên, nếu chúng ta nhấn một phím và giữ luôn thì Windows sẽ phát sinh hàng loạt các thông điệp WM_KEYDOWN hay WM_SYSKEYDOWN, nhưng với thao tác nhả thì chỉ phát sinh một thông điệp WM_KEYUP hay WM_SYSKEYUP. Các thông điệp này sẽ được gởi tuần tự đến các hàm WndProc của các cử sổ nhận được sự quan tâm của Windows. Ngoài ra chúng ta có thể biết được thời điểm mà thông điệp phím được gõ vào lúc nào bằng cách dùng hàm GetMessageTime. Như chúng ta đã thấy trong dòng trên một thao tác nhấn hay thả thì có hai dạng thông điệp khác nhau như WM_KEYDOWN và WM_SYSKEYDOWN của thao tác nhấn, và tương tự đối với thao tác nhả. Thông điệp có tiếp đầu ngữ là "SYS" thường được phát
- sinh khi người dùng nhấn các phím gõ hệ thống. Khi người dùng nhấn phím Alt kết hợp với phím khác thì thường phát sinh thông điệp WM_SYSKEYDOWN và WM_SYSKEYUP. Đối với tổ hợp các phím Alt, chức năng thường là gọi một mục chọn trên trình đơn menu của ứng dụng hay trình đơn hệ thống system menu và ngoài ra dùng để chuyển đổi các tác vụ giữa nhiều ứng dụng khác nhau (phím Alt+Tab hay Alt+Esc), và đóng cửa sổ ứng dụng khi kết hợp với phím chức năng F4. 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. Chúng ta chỉ cần dùng hàm DefWindowProc cuối mỗi hàm WndProc của cửa sổ nhận thông điệp. Windows sẽ chịu trách nhiệm xử lý các thông điệp dạng hệ thống này, nếu có những tác vụ đặc biệt thì chúng ta có thể chặn các thông điệp này để xử lý. Tuy nhiên ta không nên làm như vậy vì khi đó chương trình của chúng ta sẽ chạy không bình thường như các ứng dụng khác. Không phải chúng ta giao phó hoàn toàn cho Windows xử lý các thông điệp hệ thống của ứng dụng, mà Windows sẽ xử lý các thông điệp hệ thống này và đưa ra các thông điệp bình thường khác đến ứng dụng. Ví dụ khi nhấn phím Alt+Tab thì Windows sẽ tạo một thông điệp hệ thống gởi vào hàng đợi của ứng dụng và khi không xử lý thông điệp này thì theo mặc định hàm DefWindowProc sẽ xử lý và trả về thông điệp WM_KILLFOCUS cho ứng dụng, khi đó ứng dụng của chúng ta sẽ dễ dàng xử lý hơn. Tóm lại thông điệp WM_KEYDOWN và WM_KEYUP thường được sinh ra bởi các phím nhấn thông thường không kết hợp với phím Alt. Nếu chương trình của chúng ta bỏ qua không xử lý các thông điệp này thì Windows cũng không tạo ra các thông điệp hay xử lý gì đặc biệt. 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 WM_ACTIVATE Thông điệp này cùng được gởi đến các cửa sổ bị kích hoạt và cửa sổ không bị kích hoạt. Nếu các cửa sổ này cùng một hàng đợi nhập liệu, các thông điệp này sẽ được truyền một cách đồng bộ, đầu tiên thủ tục Windows của cửa sổ trên cùng bị mất kích hoạt, sau đó đến thủ tục của cửa sổ trên cùng được kích hoạt. Nếu các cửa sổ này không nằm trong cùng một hàng đợi thì thông điệp sẽ được gởi một cách không đồng bộ, do đó cửa sổ sẽ được kích hoạt ngay lập tức. WM_APPCOMMAND Thông báo đến cửa sổ rằng người dùng đã tạo một sự kiện lệnh ứng dụng, ví dụ khi người dùng kích vào button sử dụng chuột hay đánh vào một kí tự kích hoạt một lệnh của ứ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 TranslateMessage. Thông điệp WM_CHAR có chứa mã kí tự của phím được nhấn.
- WM_DEADCHAR 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_KEYUP đã được xử lý từ hàm TranslateMessage. Thông điệp này xác nhận mã kí tự khi một phím dead key được nhấn. Phím dead key là phím kết hợp để tạo ra kí tự ngôn ngữ không có trong tiếng anh (xuất hiện trong bàn phím hỗ trợ ngôn ngữ khác tiếng Anh). 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_HOTKEY Thông điệp này được gởi khi người dùng nhấn một phím nóng được đăng kí trong RegisterHotKey. WM_KEYDOWN Thông điệp này được gởi cho cửa sổ nhận được sự quan tâm khi người dùng nhấn một phím trên bàn phím. Phím này không phải phím hệ thống (Phím không có nhấn phím Alt). Thông điệp này được gởi cho cửa sổ nhận được sự quan tâm khi người dùng nhả một phím đã được nhấn trước đó.Phím này không WM_KEYUP phải phím hệ thống (Phím không có nhấn phím Alt). WM_KILLFOCUS Thông điệp này được gởi tới cửa sổ đang nhận được sự quan tâm trước khi nó mất quyền này. WM_SETFOCUS Thông điệp này được gởi tới cửa sổ sau khi cửa sổ nhận được sự quan tâm của Windows WM_SETHOTKEY Ứng dụng sẽ gởi thông điệp này đến cửa sổ liên quan đến phím nóng, khi người dùng nhấn một phím nóng thì cửa sổ tương ứng liên quan tới phím nóng này sẽ được kích hoạt. WM_SYSCHAR Thông điệp này sẽ được gởi tới cửa sổ nhận được sự quan tâm khi hàm TranslateMesage xử lý xong thông điệp WM_SYSKEYDOWN. Thông điệp WM_SYSCHAR chứa mã cửa phím hệ thống. Phím hệ thống là phím có chứa phím Alt và tổ hợp phím khác. WM_SYSDEADCHAR Thông điệp này được gởi tới cửa sổ nhận được sự quan tâm khi một thông điệp WM_SYSKEYDOWN được biên dịch trong hàm TranslateMessage. Thông điệp này xác nhận mã kí tự của phím hệ thống deadkey được nhấn. WM_SYSKEYDOWN Thông điệp này được gởi tới cửa sổ nhận được sự quan tâm khi người dùng nhấn phím F10 hay nhấn Alt trước khi nhấn phím khác. Thông điệp này cũng được gởi khi không có cửa sổ nào nhận được sự quan tâm và lúc này thì cửa sổ nhận được là cửa sổ đang được
- kích hoạt (Active). WM_SYSKEYUP Thông điệp này được gởi tới cửa sổ nhận được sự quan tâm khi người dùng nhấn một phím mà trước đó đã giữ phím Alt. Cũng tương tự nếu không có cửa sổ nào nhận được sự quan tâm thì thông điệp này sẽ được gởi cho cửa sổ đang được kích hoạt. Bảng Mô tả thông điệp phát sinh từ bàn phím Mã phím ảo (Virtual key code) Windows cung cấp khái niệm phím ảo nhằm tách rời với thiết bị bàn phím hay nói cách khác là tiến tới độc lập thiết bị với bàn phím. Khi một phím được nhấn thì phần cứng vật lý phát sinh ra một mã quét (scan code), trên bàn phím tương thích IBM các phím được gán với các mã ví dụ phím W là 17, phím E là 18, và phím R là 19... Cách sắp xếp này thuần túy dựa trên vị trí vật lý của phím trên bàn phím. Những người xây dựng nên Windows nhận thấy rằng nếu dùng trực tiếp mã quét thì sẽ không thích hợp khi bị lệ thuộc vào bàn phím hiện tại và tương lai. Do đó họ cố xử lý bàn phím bằng cách độc lập thiết bị hơn, bằng cách tạo ra một bảng định nghĩa tập giá trị phím tổng quát mà sau này được gọi là mã phím ảo. Một số giá trị bàn phím ảo mà ta không thấy xuất hiện trên bàn phím IBM tương thích nhưng có thể tìm thấy chúng trong bàn phím của các nhà sản xuất khác hay chúng được để dành cho bàn phím trong tương lai. Các giá trị của phím ảo này được định nghĩa trong tập tin tiêu đề WINUSER.H và được bắt đầu với các tiếp đầu ngữ VK_xxxxx. sau đây là bảng mô tả các phím ảo thông dụng trong Windows giao tiếp với bàn phím IBM tương thích. Thập Thập Hằng phím định nghĩa Windows Bàn phím phân lục trong WINUSER.H dùng IBM tương phân thích 1 01 VK_LBUTTON Nút chuột trái 2 02 VK_RBUTTON Nút chuột phải 3 03 VK_CANCEL X Ctrl –Break 4 04 VK_MBUTTON Nút chuột giữa Bảng Mô tả các phím ảo Các thông điệp trên chỉ được nhận khi dùng chuột, ta không bao giờ nhận được thông điệp trên nếu gõ từ bàn phím. Không nên dùng phím Ctrl–Break trong ứng dụng Windows, phím này thường được ngắt các ứng dụng trong DOS.
- Những giá trị phím ảo tiếp sai dành cho các phím Backspace, Tab, Enter, Escape, và Spacebar được dùng nhiều trong chương trình Windows. Thập Thập Hằng phím định Windows Bàn phím IBM phân lục nghĩa trong dùng tương thích phân WINUSER.H 8 08 VK_BACK X Backspace 9 09 VK_TAB X Tab 12 0C VK_CLEAR X Phím số 5 trong NumPad với đền Numlock tắt. 13 0D VK_RETURN X Enter (cho hai phím) 16 10 VK_SHIFT X Shift (cho hai phím) 17 11 VK_CONTROL X Ctrl (cho hai phím) 18 12 VK_MENU X Alt (cho hai phím) 19 13 VK_PAUSE X Pause 20 14 VK_CAPITAL X Caps Lock 27 1B VK_ESCAPE X Esc 32 20 VK_SPACE X Spacebar Bảng Mô tả các phím ảo Bảng mô tả phím ảo tiếp sau đây là các phím thường được sử dụng nhiều trong Windows. Thập Thập Hằng phím định Windows Bàn phím IBM phân lục nghĩa trong dùng tương thích phân WINUSER.H 33 21 VK_PRIOR X Page Up 34 22 VK_NEXT X Page Down
- 35 23 VK_END X End 36 24 VK_HOME X Home 37 25 VK_LEFT X Phím trái 38 26 VK_UP X Phím mũi tên lên 39 27 VK_RIGHT X Phím phải 40 28 VK_DOWN X Phím xuống 41 29 VK_SELECT - 42 2A VK_PRINT - 43 2B VK_EXECUTE - 44 2C VK_SNAPHOT Print Screen 45 2D VK_INSERT X Insert 46 2E VK_DELETE X Delete 47 2F VK_HELP Bảng Mô tả các phím ảo (tiếp theo) Một số các phím ảo như VK_SELECT, VK_PRINT, VK_EXECUTE, hay VK_HELP thường chỉ xuất hiện trong các bàn phím giả lập mà chúng ta ít khi nhìn thấy. Tiếp sau là mã phím ảo của các phím số và phím chữ trên bàn phím chính. Trong bàn phím bổ sung phím Num Pad được qui định riêng. Thập Thập Hằng phím định nghĩa Windows Bàn phím IBM tương thích phân lục trong WINUSER.H dùng phân 48-57 30-39 Không X Từ phím 0 đến phím 9 trên bàn phím chính 65-90 41-5A Không X Từ phím A đến phím Z. Bảng Mô tả các phím chữ và số trên bàn phím chính
- Mã phím ảo trong bảng trên bằng với mã ASCII của kí tự mà phím thể hiện. Trong các ứng dụng Windows thường không dùng mã phím ảo này mà thay vào đó ứng dụng chỉ xử lý thông điệp kí tự dành cho kí tự có mã ASCII. Cuối cùng là mã phím ảo của bàn phím mở rộng Num Pad (bên phải của bàn phím) và các phím chức năng (F1, F2, F3...). Thập Thập lục Hằng phím định nghĩa Windows Bàn phím IBM tương phân phân trong WINUSER.H dùng thích 96-105 60-69 VK_NUMPAD0 đến Phím 0 – 9 khi đèn VK_NUMPAD9 Num Lock được bật 106 6A VK_MULTIPLY Phím * 107 6B VK_ADD Phím + 108 6C VK_SEPARATOR 109 6D VK_SUBTRACT Phím - 110 6E VK_DECIMAL Phím . 111 6F VK_DIVIDE Phím / 112- 70-79 VK_F1 đến VK_F10 X Phím F1 đến F10 121 122- 7A-87 VK_F11 đến VK_F24 Phím F11 đến F24 135 144 90 VK_NUMLOCK Num Lock 145 91 VK_SCROLL Scroll Lock Bảng Mô tả các phím bổ sung Một số các phím ảo như F13- F24 thì được Windows tạo ra phòng hờ cho các bàn phím sau này. Thường thì ứng dụng Windows chỉ dùng phím F1 – F10 mà thôi. Các tham số wParam và lPram trong thông điệp phát sinh từ bàn phím Trong thông điệp phím gõ (WM_KEYDOWN, WM_KEYUP, WM_SYSKEYDOWN, và WM_SYSKEYUP) thì tham số wParam sẽ nhận giá trị mã phím ảo. Còn tham số lParam sẽ chứa thông tin chi tiết về phím được gõ vào. Bảng sau mô tả các thông tin chứa trong 32 bit của tham số lParam.
- Bit nhận Nội dung dạng 0-15 Chứa số lần của phím được nhấn xuống. Nếu chúng ta chỉ nhấn rồi nhả ra thì giá trị này bằng 1, nếu chúng ta giữ luôn phím thì số lập này sẽ tăng theo. 16-23 Chứa mã quét OEM (Original Equipment Manufacturer) được phát sinh từ phần cứng, ta hầu như không quan tâm đến thông tin này 24 Cờ này có giá trị 1 khi phím được nhấn là phím thuộc nhóm phím mở rộng trên bàn phím IBM tương thích hay phím Alt, Ctrl bên phải bàn phím được nhấn. Windows ít quan tâm đến giá trị của cờ này 29 Mã ngữ cảnh của phím (Context code), nếu cờ này có giá trị bằng 1 thì phím Alt được nhấn, điều này tương ứng với thông điệp WM_SYSKEYDOWN hay WM_SYSKEYUP được phát sinh 30 Trạng thái của phím trước đó, trường này bằng 0 cho biết phím trước đó ở trạng thái nhả, và 1 nếu phím trước đó ở trạng thái nhấn. 31 Trạng thái dịch chuyển của phím, cờ này bằng 0 nếu phím đang được nhấn, và bằng 1 nếu phím được nhấn. Bảng 4.7 Mô tả thông tin chứa trong tham số lParam Đoạn chương trình minh họa Đoạn chương trình dưới đây minh họa một chương trình nhỏ nhập các kí tự từ bàn phím và xuất ra màn hình. #define BUFSIZE 65535; #define SHIFTED 0x8000; LRESULT CALLBACK WndProc( HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam ) { HDC hdc; // Thiết bị ngữ cảnh TEXTMETRIC tm; // Cấu trúc metric của văn bản
- static DWORD dwCharX; // Bề ngang của kí tự static DWORD dwCharY; // Chiều dài của kí tự static DWORD dwClientX; // Bề ngang của vùng làm việc static DWORD dwClientY; // Chiều dài của vùng làm việc static DWORD dwLineLen; // Chiều dài của một dòng static DWORD dwLines; // Số dòng văn bản trong vùng làm việc static int nCaretPosX = 0; // Tọa độ x của caret static int nCaretPosY = 0; // Tọa độ y của caret static int nCharWidth = 0; // Bề dày của kí tự static int cch = 0; // Số kí tự trong buffer static int nCurChar = 0; // Chỉ đến kí tự hiện thời trong buffer static PTCHAR pchInputBuf; // Kí tự tạm đưa vào buffer int i, j; // Biến lặp int cCR = 0; // Số kí tự xuống dòng int nCRIndex = 0; // Chỉ đến kí tự xuống dòng cuối cùng int nVirtKey; // Mã phím ảo TCHAR szBuf [128]; // Buffer tạm TCHAR ch; // Kí tự PAINTSTRUCT ps; // Dùng cho hàm BeginPaint RECT rc; // Hình chữ nhật trong hàm DrawText SIZE sz; // Kích thước của chuỗi COLORREF crPrevText; // Màu của văn bản COLORREF crPrevBk; // Màu nền switch ( message ) {
- case WM_CREATE: /* Lấy thông tin font hiện thời */ hdc = GetDC ( hWnd ); GetTextMetrics ( hdc, &tm ); ReleaseDC ( hWnd, hdc ); dwCharX = tm.tmAveCharWidth; dwCharY = tm.tmHeight; /* Cấp phát bộ nhớ đệm để lưu kí tự nhập vào */ pchInputBuf = (LPTSTR)GlobalAlloc( GPTR,BUFSIZE * sizeof ( TCHAR ) ); return 0; case WM_SIZE: /* Lưu giữ kích thước của vùng làm việc */ dwClientX = LOWORD ( lParam ); dwClientY = HIWORD ( lParam ); /* Tính kích thước tối đa của một dòng và số dòng tối đa trong vùng làm việc */ dwLineLen = dwClientX - dwCharX; dwLines = dwClientY / dwCharY; break; case WM_SETFOCUS: /* Tạo và hiển thị caret khi cửa sổ nhận được sự quan tâm */ CreateCaret ( hWnd, ( HBITMAP ) 1, 0, dwCharY ); SetCaretPos ( nCaretPosX, nCaretPosY * dwCharY ); ShowCaret ( hWnd ); break;
- case WM_KILLFOCUS: /*Ẩn caret và hủy khi cửa sổ không còn nhận được sự quan tâm */ HideCaret ( hWnd ); DestroyCaret ( ); break; case WM_CHAR: switch ( wParam ) { case 0x08: // Backspace case 0x0A: // Linefeed case 0x1B: // Escape MessageBeep( ( UINT ) –1 ); return 0; case 0x09: // tab /* Chuyển phím tab thành 4 kí tự trắng liên tục nhau */ for ( i = 0; i < 4; i ++ ) SendMessage (hWnd, WM_CHAR, 0x20, 0); return 0; case 0x0D: // Xuống dòng /* Lưu kí tự xuống dòng và tạo dòng mới đưa caret xuống vị trí mới */ pchInputBuf [ cch++ ] = 0x0D; nCaretPosX = 0; nCaretPosY += 1; break;
- default: // Xử lý những kí tự có thể hiển thị được ch = ( TCHAR ) wParam; HideCaret ( hWnd ); /* Lấy bề dày của kí tự và xuất ra */ hdc = GetDC ( hWnd ); GetCharWidth32 ( hdc, (UINT) wParam, (UINT)wParam, &nCharWidth ); TextOut(hdc, nCaretPosX, nCaretPosY*dwCharY, &ch, 1); ReleaseDC ( hWnd, hdc ); /* Lưu kí tự vào buffer */ pchInputBuf [ cch++ ] = ch; /* Tính lại vị trí ngang của caret. Nếu vị trí này tới cuối dòng thì chèn thêm kí tự xuống dòng và di chuyển caret đến dòng mới */ nCaretPosX += nCharWidth; if ( ( DWORD ) nCaretPosX > dwLineLen ) { nCaretPosX = 0; pchInputBuf [ cch++ ] = 0x0D; ++nCaretPosY; } nCurChar = cch; ShowCaret ( hWnd ); break; } SetCaretPos ( nCaretPosX, nCaretPosY * dwCharY ); break;
- case WM_KEYDOWN: switch ( wParam ) { case VK_LEFT: // LEFT arrow /* Caret di chuyển qua trái và chỉ đến đầu dòng */ if ( nCaretPosX > 0 ) { HideCaret ( hWnd ); /* Tính toán lại vị trí của caret khi qua trái */ ch = pchInputBuf [--nCurChar ]; hdc = GetDC ( hWnd ); GetCharWidth32 ( hdc, ch, ch, &nCharWidth ); ReleaseDC ( hWnd, hdc ); nCaretPosX=max(nCaretPosX-nCharWidth,0 ); ShowCaret ( hWnd ); } break; case VK_RIGHT: // RIGHT arrow /* Di chuyển caret sang phải */ if (nCurChar < cch) { HideCaret ( hWnd ); /* Tính toán lại vị trí của caret khi sang phải */ ch = pchInputBuf [ nCurChar ]; if ( ch == 0x0D )
- { nCaretPosX = 0; nCaretPosY++; } /* Nếu kí tự không phải là enter thì kiểm tra xem phím shift có được nhấn hay không. Nếu có nhấn thì đổi màu và xuất ra màn hình. */ else { hdc = GetDC ( hWnd ); nVirtKey = GetKeyState ( VK_SHIFT ); if ( nVirtKey & SHIFTED ) { crPrevText=SetTextColor( hdc,RGB (255, 255, 255) ); crPrevBk= SetBkColor(hdc,RGB(0,0,0)); TextOut(hdc,nCaretPosX,nCaretPosY*dwCharY, &ch,1 ); SetTextColor ( hdc, crPrevText ); SetBkColor ( hdc, crPrevBk ); } GetCharWidth32(hdc,ch,ch,&nCharWidth); ReleaseDC ( hWnd, hdc ); nCaretPosX = nCaretPosX + nCharWidth; } nCurChar++; ShowCaret ( hWnd ); break;
- } break; case VK_UP: // Phím mũi tên lên case VK_DOWN: // Phím mũi tên xuống MessageBeep ( (UINT) –1 ); return 0; case VK_HOME: // Phím home /* Thiết lập vị trí của caret ở dòng đầu tiên */ nCaretPosX = nCaretPosY = 0; nCurChar = 0; break; case VK_END: // Phím end /* Di chuyển về cuối văn bản và lưu vị trí của kí tự xuống dòng cuối */ for ( i=0; i < cch; i++ ) { if ( pchInputBuf [ i ] == 0x0D ) { cCR++; nCRIndex = i + 1; } } nCaretPosY = cCR; /* Chép tất cả các kí tự từ kí tự xuống dòng cuối đến kí tự hiện thời vừa nhập từ bàn phím vào bộ nhớ đệm. */ for ( i = nCRIndex, j = 0; i < cch; i++, j++ ) szBuf [ j ] = pchInputBuf [ i ];
- szBuf [ j ] = TEXT ( '\0' ); /* Tính vị trí dọc của caret */ hdc = GetDC ( hWnd ); GetTextExtentPoint32(hdc,szBuf, lstrlen(szBuf), &sz ); nCaretPosX = sz.cx; ReleaseDC ( hWnd, hdc ); nCurChar = cch; break; default: break; } SetCaretPos( nCaretPosX, nCaretPosY*dwCharY ); break; case WM_PAINT: if ( cch == 0 ) break; hdc = BeginPaint ( hWnd, &ps ); HideCaret ( hWnd ); SetRect ( &rc, 0, 0, dwLineLen, dwClientY ); DrawText ( hdc, pchInputBuf, -1, &rc, DT_LEFT ); ShowCaret ( hWnd ); EndPaint ( hWnd, &ps ); break; case WM_DESTROY: PostQuitMessage ( 0 );
- /* Giải phóng buffer */ GlobalFree ( ( HGLOBAL) pchInputBuf ); UnregisterHotKey ( hWnd, 0xAAAA ); break; default: return DefWindowProc ( hWnd, message, wParam, lParam ); } return NULL; } THIẾT BỊ CHUỘT Trong một môi trường giao tiếp đồ họa, việc sử dụng thiết bị định vị chuột là hết sức cần thiết. Nhờ thiết bị chuột ta có thể di chuyển đến một điểm bất kì trên khung màn hình và thực hiện thao tác kích các nút chuột. Đối với một số ứng dụng đồ họa không quá phức tạp thì công cụ để thực hiện chủ yếu là chuột, riêng đối với các ứng dụng đòi hỏi sự phức tạp khi vẽ thì người ta dùng bút vẽ. Với Windows thì thiết bị chuột là một thành phần quan trọng, nếu chúng ta bỏ thiết bị chuột thì vẫn khởi động bình thường và các chương trình vẫn có thể chạy được. Tuy nhiên khi đó ta sẽ lúng túng nhiều khi xử lý các ứng dụng trực quan tương tác với người dùng theo tọa độ hay định vị. Cũng tương tự như bàn phím, thiết bị chuột cũng được dùng để nhập dữ liệu từ người dùng vào ứng dụng nhưng dữ liệu đây không phải là văn bản như khi nhập từ bàn phím mà là các thao tác vẽ hay xử lý các đối tượng đồ họa. Cơ bản về thiết bị chuột trong Windows Về cơ bản Windows hỗ trợ các loại thiết bị chuột có một nút, hai và ba nút, ngoài ra Windows còn có thể dùng thiết bị khác như joystick hay bút vẽ để bắt chước thiết bị chuột. Các ứng dụng trong Windows thường né việc dùng các nút thứ hai và nút thứ ba, để có thể sử dụng tốt trên các thiết bị chuột chỉ có một nút. Thông thường nút thứ hai của thiết bị chuột phải được dùng cho chức năng gọi thực đơn ngữ cảnh (context menu). Theo nguyên tắc, ta có thể kiểm tra xem có tồn tại thiết bị chuột hay không bằng cách dùng hàm GetSystemMetrics. fMouse = GetSystemMetrics( SM_MOUSEPRESENT );
- Giá trị trả về fMouse là TRUE (1) nếu có thiết bị chuột được cài đặt, và ngược lại bằng FALSE (0) nếu thiết bị chuột không được cài đặt vào máy. Ta cũng có thể kiểm tra số nút của thiết bị chuột bằng cách dùng hàm trên theo câu lệnh sau: nButton = GetSystemMetrics( SM_CMOUSEBUTTONS ); Giá trị trả về là 0 nếu không cài đặt thiết bị chuột, tuy nhiên dưới Windows 98 giá trị trả về là 2 nếu chưa cài đặt thiết bị chuột. Khi người dùng di chuyển thiết bị chuột thì Windows cũng di chuyển một ảnh bitmap nhỏ trên màn hình, ảnh này được gọi là con trỏ chuột (mouse cursor). Con trỏ chuột này có một điểm gọi là điểm nóng (hot spot) , điểm nóng này nằm trong hình bitmap, và do người tạo con trỏ chuột quyết định. Khi chúng ta tham chiếu tới một vị trí của con trỏ chuột thì chính là chúng ta đang dùng tọa độ của điểm nóng này. Windows hỗ trợ một số các con trỏ chuột chuẩn, mà người lập trình chỉ cần gọi ra và dùng chứ không cần phải tạo các tập tin *.cur. Ở trạng thái bình thường thì một ứng dụng trong Windows thường dùng con trỏ chuột IDC_ARROW được định nghĩa trong WINUSER.H, điểm nóng chính là điểm trên cùng của mũi tên. Ngoài ra con trỏ chuột còn cho biết trạng thái của ứng dụng, ví dụ một ứng dụng đang xử lý cần một khoảng thời gian thì con trỏ chuột xuất hiện hình đồng hồ cát (IDC_WAIT). Khi đó hầu như các chức năng giao tiếp với người dùng điều phải hoãn đến khi xử lý hoàn thành. Trong lớp cửa sổ ta có trường định nghĩa con trỏ chuột cho ứng dụng như sau wndclass.hCursor = LoadCursor ( NULL, IDC_ARROR); Với thiết bị chuột ta có thể có các hành động như sau: • Kích chuột : nhấn và thả một nút chuột. • Kích đúp chuột : nhấn và thả chuột nhanh (nhấn 2 lần nhanh). • Kéo : di chuyển chuột trong khi vẫn nắm giữ một nút. Xử lý các thông điệp từ thiết bị chuột Các thông điệp được tạo từ chuột rất khác với thông điệp của bàn phím, một thủ tục cửa sổ sẽ nhận thông điệp chuột bất cứ khi nào thiết bị chuột di chuyển qua cửa sổ hay kích vào trong cửa sổ, thậm chí cả trong trường hợp cửa sổ không được kích hoạt hay không nhận được sự quan tâm. Windows định nghĩa 21 thông điệp được phát sinh từ thiết bị chuột. Trong số đó có đến 11 thông điệp không liên quan đến vùng làm việc (client area). 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ý.
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Khái niệm căn bản về thiết bị mạng
4 p |
1239 |
596
-
Bộ vi xử lý (CPU)
27 p |
427 |
197
-
Bàn phím_Thiết bị ra vào_chương 8
10 p |
877 |
177
-
Chương 7 Các thiết bị I/O (Các thiết bị ngoại vi)
80 p |
413 |
135
-
Cơ bản: Bộ vi xử lý – CPU
18 p |
276 |
123
-
Bộ vi xử lý CPU
4 p |
235 |
86
-
Cam card và thiết bị ngoại vi
8 p |
173 |
51
-
Bài giảng Kỹ thuật vi xử lý: Chương 4 - Nguyễn Văn Thọ
19 p |
109 |
29
-
Tìm hiểu về số hiệu bộ xử lý Intel® - Intel Việt Nam
7 p |
34 |
17
-
Bài giảng môn Phần cứng máy tính: Bài 7 - Thiết bị ngoại và chuẩn giao tiếp
128 p |
36 |
13
-
Những lời khuyên cho việc lắp đặt bộ xử lý, bộ nhớ, các cáp ổ đĩa
11 p |
119 |
12
-
Những thiết bị nên và không nên nâng cấp
3 p |
47 |
11
-
Bài giảng Kiến trúc máy tính - Chương 4: Bộ xử lý (the processor)
69 p |
21 |
4
-
Giáo trình Kiến trúc máy vi tính: Phần 2
85 p |
14 |
3
-
Bài giảng Cấu trúc máy tính - Chương 7: Các thiết bị I/O (Các thiết bị ngoại vi)
80 p |
6 |
3
-
Bài giảng Kiến trúc máy tính: Chương 2 - TS. Vũ Đức Lung
50 p |
16 |
2
-
Bài giảng Nhập môn tin học: Chương 2 - Trần Thị Kim Chi
54 p |
12 |
1

Set-Cookie: TLDEVNamespace=loa7vb58p47tv0r7e76ol5c790; path=/; domain=.tailieu.vn; HttpOnly

Server: Apache/2.2.31 (CentOS)


text:
Gian lận thương mại ở hà nội
-
Luận văn:Một số kết quả cụ thể trong công tác phòng chống buôn lậu và gian lận thương mại của Cục Hải quan thành phố Hà nội
Tham khảo luận văn - đề án 'luận văn:một số kết quả cụ thể trong công tác phòng chống buôn lậu và gian lận thương mại của cục hải quan thành phố hà nội', luận văn - báo cáo, kinh tế - thương mại phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả
0p tengteng1 10-11-2011 87 35 Download
-
Tham khảo luận văn - đề án 'tiểu luận: thực trạng và giải pháp ngăn chặn buôn lậu và gian lận thương mại ở thành phố hà nội', luận văn - báo cáo phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả
9p buiduongson3 08-05-2010 198 71 Download
-
Chống buôn lậu, gian lận thương mại luôn là mối quan tâm của nhiều quốc gia trên thế giới . Tệ nạn buôn lậu và gian lận thương mại ở nước ta trong những năm gần đây có nhiều diễn biến phức tạp và đang là một trong những trở ngại lớn cho công cuộc xây dựng và phát triển đất nước .
45p minhtri 22-07-2009 599 185 Download
-
Đất nước ta, trong điều kiện hiện nay đang ra sức tập trung thực hiện thắng lợi công cuộc đổi mới đất nước từng bước đưa đất nước vào thời kỳ công nghiệp hoá, hiện đại hoá đất nước thì nhiệm vụ chống buôn lậu và gian lận thương mại rất quan trọng và có ý nghĩa thiết thực.
13p huyhoang 03-08-2009 466 102 Download
-
Chống buôn lậu, gian lận thương mại luôn là mối quan tâm của nhiều quốc gia trên thế giới . Tệ nạn buôn lậu và gian lận thương mại ở nước ta trong những năm gần đây có nhiều diễn biến phức tạp và đang là một trong những trở ngại lớn cho công cuộc xây dựng và phát triển đất nước .
44p ngochanh 31-07-2009 276 88 Download
-
Thuận ngữ buôn lậu được sử dụng với những ý nghĩa khác nhau. Từ góc độ của khoa học về ngôn ngữ, cụm từ "buôn lậu" có ý nghĩa là buôn bán những hàng hoá trốn thuế và hàng cấm. Đây là một khái niệm kế thừa những hiểu biết xưa nay của cụm từ này và khá phù hợp với quan niệm phổ thông hiện nay. Từ năm 1985 Bộ Luật Hình sự của nước CHXHCN Việt Nam ra đời đã chính thức ghi nhận tội danh buôn lậu " Người nào buôn bán trái phép hoặc vận chuyển...
14p tiencuong 13-07-2009 424 145 Download
-
Luận văn: Một số giải pháp nhằm đẩy mạnh công tác phòng chống buôn lậu và gian lận thương mại tại Cục Hải quan Hà Nội
Trong những năm vừa qua đất nước ta ổn định về chính tri và xã hội, kinh tế đã đạt được nhiều thành tựu đáng mừng, giao lưu kinh tế được mở rộng, công cuộc cải cách hành chính phát triển nổi bật, đặc biệt là những định hướng phát triển kinh tế và xã hội đưa ra trong nghị quyết đại hội Đảng lần thứ IX của Đảng đề ra, như đa phương hoá, đa dạng hoá các mối quan hệ, Viêt Nam muốn là bạn với tất cả các nước trên thế giới, đồng thời đảy ...
106p hotmoingay5 19-01-2013 63 41 Download
-
Tham khảo luận văn - đề án 'đề tài: thực trạng buôn lậu và gian lận thương mại ở thành phố hà nội hiện nay.', luận văn - báo cáo phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả
13p dahlia89 23-02-2012 49 16 Download
-
Tiểu luận KTCT:"Thực trạng và giải pháp ngăn chặn buôn lậu và gian lận thương mại ở thành phố Hà Nội"
Tham khảo luận văn - đề án 'tiểu luận ktct:"thực trạng và giải pháp ngăn chặn buôn lậu và gian lận thương mại ở thành phố hà nội"', luận văn - báo cáo phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả
13p sunderland24 11-06-2011 59 10 Download
-
Chống buôn lậu, gian lận thương mại luôn là mối quan tâm của nhiều quốc gia trên thế giới . Tệ nạn buôn lậu và gian lận thương mại ở nước ta trong những năm gần đây có nhiều diễn biến phức tạp và đang là một trong những trở ngại lớn cho công cuộc xây dựng và phát triển đất nước .
43p antigone89 11-02-2012 44 11 Download
-
Là một sinh viên trường Quản Lý kinh doanh - một nhà quản lý kinh doanh tương lai, em càng cần nhận thức rõ được tác hại của buôn lậu và gian lận thương mại đối với sự phát triển của kinh tế đất nước.
13p tengteng4 19-11-2011 41 8 Download
-
Lời nói đầu Chống buôn lậu, gian lận thơng mại luôn là mối quan tâm của nhiều quốc gia trên thế giới . Tệ nạn buôn lậu và gian lận thơng mại ở nớc ta trong những năm gần đây có nhiều diễn biến phức tạp và đang là một trong những trở ngại lớn cho công cuộc xây dựng và phát triển đất nớc .
32p kimku2 07-09-2011 22 2 Download
-
Thuận ngữ buôn lậu được sử dụng với những ý nghĩa khác nhau.Từ góc độ của khoa học về ngôn ngữ, cụm từ "buôn lậu" cóý nghĩa là buôn bán những hàng hoá trốn thuế và hàng cấm.Đây là một khái niệm kế thừa những hiểu biết xưa nay của cụm từ này và khá phù hợp với quan niệm phổ thông hiện nay.
14p dinhthao00 14-06-2011 149 55 Download
-
Tóm tắt: Đất nước ta thực hiện công cuộc đổi mới trong hơn hai mươi năm qua đã đạt được nhiều thành tựu quan trọng. Bên cạnh những thành tựu về kinh tế, văn hoá, xã hội mà chúng ta đã đạt được, mặt trái của nền kinh tế thị trường cũng phát sinh ngày càng nhiều tiêu cực gây ảnh hưởng xấu đến nhiều mặt của đời sống xã hội nước ta.
4p thulanh2 06-09-2011 41 15 Download
-
Là một sinh viên trường Quản Lý kinh doanh - một nhà quản lý kinh doanh tương lai, em càng cần nhận thức rõ được tác hại của buôn lậu và gian lận thương mại đối với sự phát triển của kinh tế đất nước. Chính vì lý do đó, em quyết định lựa chọn đề tài: "Thực trạng và giải pháp ngăn chặn buôn lậu và gian lận thương mại ở thành phố Hà Nội" Do thời gian có hạn, khả năng phân tích, tổng hợp thông tin có hạn nên bài viết của em sẽ không tránh khỏinhững...
5p phuoctam21 02-06-2011 29 3 Download
-
Sau này những khi về Hà Nội tôi thường thăm Hội và mỗi lần gặp ông ông lại cười hóm hỉnh: “Kin lẩu á”. Có lần ông cùng các họa sĩ Trần Thức, Huỳnh Văn Gấm lên Thái Nguyên công tác với Bảo tàng Việt Bắc, đến thăm tôi ông cùng đoàn chọn tranh của tôi về triển lãm dân tộc tại Hà Nội... gặp nhau ông luôn đòi xem tranh và nhắc lại thời gian ông sống ở Tây Bắc
5p vietnamladay 08-08-2013 23 3 Download
-
Luận văn : “Giải pháp nâng cao chất lượng tín dụng ở Ngân hàng thương mai cổ phần Bắc Á, chi nhánh 57A Phan Chu Trinh-Hà Nội”
Hoạt động tín dụng bao gồm bốn hoạt động chính: Thứ nhất: Cho vay là việc ngân hàng giao cho khách hàng sử dụng một khoản tiền, để dùng vào mục đích và thời gian nhất định theo thoả thuận và nguyên tắc có hoàn trả cả gốc lẫn lói.
89p kmkmkmkmkm 11-09-2012 102 26 Download
-
Khi Alain Cany - Chủ tịch Văn phòng Thương mại châu Âu (Eurocham) quyết định chuyển văn phòng về tòa nhà mới tại địa chỉ 49 Mạc Đĩnh Chi, quận 1 (TP.HCMinh), ông muốn nội thất tòa nhà phải thể hiện được hình ảnh một trung tâm châu Âu trong lòng thành phố nhiệt đới. Ngoài ra, công năng của nó phải đáp ứng được nhiều yêu cầu của các tổ chức hoạt động thương mại đến từ Đức, Bỉ, Hà Lan, Pháp, Phần Lan… cùng đặt văn phòng tại đây.
11p wiwinn 27-07-2013 17 1 Download
-
CHUYỆN KỂ VỀ CỐ THỦ TƯỚNG VÕ VĂN KIỆT 2 Những năm gần đây, linh cảm quỹ thời gian còn lại không nhiều nên ông hối hả làm việc, hết vào Nam, lại ra Bắc (riêng những ngày lễ tết, sinh nhật, để tránh ồn ào, ông thường lặng lẽ về quê). Năm 2007, đi khảo sát tình hình bão lũ, cứu trợ ở miền trung, miệt mài đến nỗi sau này ông cứ áy náy mãi vì lỡ mất cả cuộc hẹn với cựu Thủ tướng Thái Lan Anand Panyarachun. Gần đây, thấy bão lụt diễn ra trên thế giới...
8p caott2 17-05-2011 93 19 Download
CHỦ ĐỀ BẠN MUỐN TÌM
- Món ngon Hà Nội
- Thương mại điện tử
- Thương mại điện tử là gì
- Ẩm thực Hà Nội
- Luật thương mại điện tử
- Văn hóa Hà Nội
- Ứng dụng thương mại điện tử
- Lịch sử Hà Nội
- Báo cáo thương mại điện tử
- Kinh doanh thương mại điện tử
- Cổng thương mại điện tử
- Tài liệu thương mại điện tử
- Sách thương mại điện tử
- Marketing thương mại
- Bài giảng thương mại điện tử
- Đề án thương mại điện tử
- Giao dịch thương mại điện tử
- Web thương mại điện tử
- Chi phí và xác định kết quả kinh doanh tại công ty cổ phần xây dựng thương mại&vận tải ngọc hà
- Hà nội 36 phố phường

markdown:
# Gian lận thương mại ở hà nội
**Gian lận thương mại ở hà nội**
-
[Luận văn:Một số kết quả cụ thể trong công tác phòng chống buôn lậu và gian lận thương mại của Cục Hải quan thành phố Hà nội](http://tailieu.vn/doc/luan-van-mot-so-ket-qua-cu-the-trong-cong-tac-phong-chong-buon-lau-va-gian-lan-thuong-mai-cua-cuc-ha-962618.html)
Tham khảo luận văn - đề án 'luận văn:một số kết quả cụ thể trong công tác phòng chống buôn lậu và gian lận thương mại của cục hải quan thành phố hà nội', luận văn - báo cáo, kinh tế - thương mại phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả
0p
tengteng1
10-11-2011
87
35
Download
-
Tham khảo luận văn - đề án 'tiểu luận: thực trạng và giải pháp ngăn chặn buôn lậu và gian lận thương mại ở thành phố hà nội', luận văn - báo cáo phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả
9p
buiduongson3
08-05-2010
198
71
Download
-
Chống buôn lậu, gian lận thương mại luôn là mối quan tâm của nhiều quốc gia trên thế giới . Tệ nạn buôn lậu và gian lận thương mại ở nước ta trong những năm gần đây có nhiều diễn biến phức tạp và đang là một trong những trở ngại lớn cho công cuộc xây dựng và phát triển đất nước .
45p
minhtri
22-07-2009
599
185
Download
-
Đất nước ta, trong điều kiện hiện nay đang ra sức tập trung thực hiện thắng lợi công cuộc đổi mới đất nước từng bước đưa đất nước vào thời kỳ công nghiệp hoá, hiện đại hoá đất nước thì nhiệm vụ chống buôn lậu và gian lận thương mại rất quan trọng và có ý nghĩa thiết thực.
13p
huyhoang
03-08-2009
466
102
Download
-
Chống buôn lậu, gian lận thương mại luôn là mối quan tâm của nhiều quốc gia trên thế giới . Tệ nạn buôn lậu và gian lận thương mại ở nước ta trong những năm gần đây có nhiều diễn biến phức tạp và đang là một trong những trở ngại lớn cho công cuộc xây dựng và phát triển đất nước .
44p
ngochanh
31-07-2009
276
88
Download
-
Thuận ngữ buôn lậu được sử dụng với những ý nghĩa khác nhau. Từ góc độ của khoa học về ngôn ngữ, cụm từ "buôn lậu" có ý nghĩa là buôn bán những hàng hoá trốn thuế và hàng cấm. Đây là một khái niệm kế thừa những hiểu biết xưa nay của cụm từ này và khá phù hợp với quan niệm phổ thông hiện nay. Từ năm 1985 Bộ Luật Hình sự của nước CHXHCN Việt Nam ra đời đã chính thức ghi nhận tội danh buôn lậu " Người nào buôn bán trái phép hoặc vận chuyển...
14p
tiencuong
13-07-2009
424
145
Download
-
[Luận văn: Một số giải pháp nhằm đẩy mạnh công tác phòng chống buôn lậu và gian lận thương mại tại Cục Hải quan Hà Nội](http://tailieu.vn/doc/luan-van-mot-so-giai-phap-nham-day-manh-cong-tac-phong-chong-buon-lau-va-gian-lan-thuong-mai-tai-cu-1346384.html)
Trong những năm vừa qua đất nước ta ổn định về chính tri và xã hội, kinh tế đã đạt được nhiều thành tựu đáng mừng, giao lưu kinh tế được mở rộng, công cuộc cải cách hành chính phát triển nổi bật, đặc biệt là những định hướng phát triển kinh tế và xã hội đưa ra trong nghị quyết đại hội Đảng lần thứ IX của Đảng đề ra, như đa phương hoá, đa dạng hoá các mối quan hệ, Viêt Nam muốn là bạn với tất cả các nước trên thế giới, đồng thời đảy ...
106p
hotmoingay5
19-01-2013
63
41
Download
-
Tham khảo luận văn - đề án 'đề tài: thực trạng buôn lậu và gian lận thương mại ở thành phố hà nội hiện nay.', luận văn - báo cáo phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả
13p
dahlia89
23-02-2012
49
16
Download
-
[Tiểu luận KTCT:"Thực trạng và giải pháp ngăn chặn buôn lậu và gian lận thương mại ở thành phố Hà Nội"](http://tailieu.vn/doc/tieu-luan-ktct-thuc-trang-va-giai-phap-ngan-chan-buon-lau-va-gian-lan-thuong-mai-o-thanh-pho-ha-noi-660160.html)
Tham khảo luận văn - đề án 'tiểu luận ktct:"thực trạng và giải pháp ngăn chặn buôn lậu và gian lận thương mại ở thành phố hà nội"', luận văn - báo cáo phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả
13p
sunderland24
11-06-2011
59
10
Download
-
Chống buôn lậu, gian lận thương mại luôn là mối quan tâm của nhiều quốc gia trên thế giới . Tệ nạn buôn lậu và gian lận thương mại ở nước ta trong những năm gần đây có nhiều diễn biến phức tạp và đang là một trong những trở ngại lớn cho công cuộc xây dựng và phát triển đất nước .
43p
antigone89
11-02-2012
44
11
Download
-
Là một sinh viên trường Quản Lý kinh doanh - một nhà quản lý kinh doanh tương lai, em càng cần nhận thức rõ được tác hại của buôn lậu và gian lận thương mại đối với sự phát triển của kinh tế đất nước.
13p
tengteng4
19-11-2011
41
8
Download
-
Lời nói đầu Chống buôn lậu, gian lận thơng mại luôn là mối quan tâm của nhiều quốc gia trên thế giới . Tệ nạn buôn lậu và gian lận thơng mại ở nớc ta trong những năm gần đây có nhiều diễn biến phức tạp và đang là một trong những trở ngại lớn cho công cuộc xây dựng và phát triển đất nớc .
32p
kimku2
07-09-2011
22
2
Download
-
Thuận ngữ buôn lậu được sử dụng với những ý nghĩa khác nhau.Từ góc độ của khoa học về ngôn ngữ, cụm từ "buôn lậu" cóý nghĩa là buôn bán những hàng hoá trốn thuế và hàng cấm.Đây là một khái niệm kế thừa những hiểu biết xưa nay của cụm từ này và khá phù hợp với quan niệm phổ thông hiện nay.
14p
dinhthao00
14-06-2011
149
55
Download
-
Tóm tắt: Đất nước ta thực hiện công cuộc đổi mới trong hơn hai mươi năm qua đã đạt được nhiều thành tựu quan trọng. Bên cạnh những thành tựu về kinh tế, văn hoá, xã hội mà chúng ta đã đạt được, mặt trái của nền kinh tế thị trường cũng phát sinh ngày càng nhiều tiêu cực gây ảnh hưởng xấu đến nhiều mặt của đời sống xã hội nước ta.
4p
thulanh2
06-09-2011
41
15
Download
-
Là một sinh viên trường Quản Lý kinh doanh - một nhà quản lý kinh doanh tương lai, em càng cần nhận thức rõ được tác hại của buôn lậu và gian lận thương mại đối với sự phát triển của kinh tế đất nước. Chính vì lý do đó, em quyết định lựa chọn đề tài: "Thực trạng và giải pháp ngăn chặn buôn lậu và gian lận thương mại ở thành phố Hà Nội" Do thời gian có hạn, khả năng phân tích, tổng hợp thông tin có hạn nên bài viết của em sẽ không tránh khỏinhững...
5p
phuoctam21
02-06-2011
29
3
Download
-
Sau này những khi về Hà Nội tôi thường thăm Hội và mỗi lần gặp ông ông lại cười hóm hỉnh: “Kin lẩu á”. Có lần ông cùng các họa sĩ Trần Thức, Huỳnh Văn Gấm lên Thái Nguyên công tác với Bảo tàng Việt Bắc, đến thăm tôi ông cùng đoàn chọn tranh của tôi về triển lãm dân tộc tại Hà Nội... gặp nhau ông luôn đòi xem tranh và nhắc lại thời gian ông sống ở Tây Bắc
5p
vietnamladay
08-08-2013
23
3
Download
-
[Luận văn : “Giải pháp nâng cao chất lượng tín dụng ở Ngân hàng thương mai cổ phần Bắc Á, chi nhánh 57A Phan Chu Trinh-Hà Nội”](http://tailieu.vn/doc/luan-van-giai-phap-nang-cao-chat-luong-tin-dung-o-ngan-hang-thuong-mai-co-phan-bac-a-chi-nhanh-5-1239690.html)
Hoạt động tín dụng bao gồm bốn hoạt động chính: Thứ nhất: Cho vay là việc ngân hàng giao cho khách hàng sử dụng một khoản tiền, để dùng vào mục đích và thời gian nhất định theo thoả thuận và nguyên tắc có hoàn trả cả gốc lẫn lói.
89p
kmkmkmkmkm
11-09-2012
102
26
Download
-
Khi Alain Cany - Chủ tịch Văn phòng Thương mại châu Âu (Eurocham) quyết định chuyển văn phòng về tòa nhà mới tại địa chỉ 49 Mạc Đĩnh Chi, quận 1 (TP.HCMinh), ông muốn nội thất tòa nhà phải thể hiện được hình ảnh một trung tâm châu Âu trong lòng thành phố nhiệt đới. Ngoài ra, công năng của nó phải đáp ứng được nhiều yêu cầu của các tổ chức hoạt động thương mại đến từ Đức, Bỉ, Hà Lan, Pháp, Phần Lan… cùng đặt văn phòng tại đây.
11p
wiwinn
27-07-2013
17
1
Download
-
CHUYỆN KỂ VỀ CỐ THỦ TƯỚNG VÕ VĂN KIỆT 2 Những năm gần đây, linh cảm quỹ thời gian còn lại không nhiều nên ông hối hả làm việc, hết vào Nam, lại ra Bắc (riêng những ngày lễ tết, sinh nhật, để tránh ồn ào, ông thường lặng lẽ về quê). Năm 2007, đi khảo sát tình hình bão lũ, cứu trợ ở miền trung, miệt mài đến nỗi sau này ông cứ áy náy mãi vì lỡ mất cả cuộc hẹn với cựu Thủ tướng Thái Lan Anand Panyarachun. Gần đây, thấy bão lụt diễn ra trên thế giới...
8p
caott2
17-05-2011
93
19
Download
## CHỦ ĐỀ BẠN MUỐN TÌM
[Món ngon Hà Nội](http://tailieu.vn/tag/mon-ngon-ha-noi.html) [Thương mại điện tử](http://tailieu.vn/tag/thuong-mai-dien-tu.html) [Thương mại điện tử là gì](http://tailieu.vn/tag/thuong-mai-dien-tu-la-gi.html) [Ẩm thực Hà Nội](http://tailieu.vn/tag/am-thuc-ha-noi.html) [Luật thương mại điện tử](http://tailieu.vn/tag/luat-thuong-mai-dien-tu.html) [Văn hóa Hà Nội](http://tailieu.vn/tag/van-hoa-ha-noi.html) [Ứng dụng thương mại điện tử](http://tailieu.vn/tag/ung-dung-thuong-mai-dien-tu.html) [Lịch sử Hà Nội](http://tailieu.vn/tag/lich-su-ha-noi.html) [Báo cáo thương mại điện tử](http://tailieu.vn/tag/bao-cao-thuong-mai-dien-tu.html) [Kinh doanh thương mại điện tử](http://tailieu.vn/tag/kinh-doanh-thuong-mai-dien-tu.html) [Cổng thương mại điện tử](http://tailieu.vn/tag/cong-thuong-mai-dien-tu.html) [Tài liệu thương mại điện tử](http://tailieu.vn/tag/tai-lieu-thuong-mai-dien-tu.html) [Sách thương mại điện tử](http://tailieu.vn/tag/sach-thuong-mai-dien-tu.html) [Marketing thương mại](http://tailieu.vn/tag/marketing-thuong-mai.html) [Bài giảng thương mại điện tử](http://tailieu.vn/tag/bai-giang-thuong-mai-dien-tu.html) [Đề án thương mại điện tử](http://tailieu.vn/tag/de-an-thuong-mai-dien-tu.html) [Giao dịch thương mại điện tử](http://tailieu.vn/tag/giao-dich-thuong-mai-dien-tu.html) [Web thương mại điện tử](http://tailieu.vn/tag/web-thuong-mai-dien-tu.html) [Chi phí và xác định kết quả kinh doanh tại công ty cổ phần xây dựng thương mại&vận tải ngọc hà](http://tailieu.vn/tag/chi-phi-va-xac-dinh-ket-qua-kinh-doanh-tai-cong-ty-co-phan-xay-dung-thuong-mai-van-tai-ngoc-ha.html) [Hà nội 36 phố phường](http://tailieu.vn/tag/ha-noi-36-pho-phuong.html)

WARC-Type: response

Content-Type: application/http; msgtype=response

Set-Cookie: TLDEVNamespace=qau9pgo7lrrpcs8vu2dhk6u0a4; path=/; domain=.tailieu.vn; HttpOnly

Connection: close

Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0

Pragma: no-cache

Vary: Accept-Encoding

Content-Type: text/html; charset=UTF-8


text:
DIỄN ĐÀN TRƯỜNG THPT THANH CHƯƠNG 3
Index
Calendar
Trợ giúp
Tìm kiếm
Tìm kiếm
Display results as :
Số bài
Chủ đề
Advanced Search
Thành viên
Nhóm
Đăng ký
Đăng Nhập
Top posters
songlamemdem
(490)
123break
(218)
dien dan tc3
(140)
tieuzai9x
(118)
gabong
(99)
ButXiTin
(90)
bolide
(88)
sen_bo_hung
(87)
bunleo
(85)
linhtinh
(84)
Latest topics
»
Aquafadas BannerZest Pro V3.1.4 (Mac OSX)
by
jaesgushdtcfoznsyp
Wed 09 Dec 2015, 8:16 pm
»
Crustacea-Unification 2-2011-COCMP3.rar 1
by
jaesgushdtcfoznsyp
Mon 30 Nov 2015, 2:09 am
»
Download Mathrubhumi Malayalam Calendar 2009 Pdf
by
jaesgushdtcfoznsyp
Sat 28 Nov 2015, 7:31 pm
»
{Rambo 2012 Kannada Movie DVD-RIP XviD ASAP}
by
jaesgushdtcfoznsyp
Sun 11 Oct 2015, 10:39 am
»
Khwahishen Bar Bar Yar Ki Karo
by
jaesgushdtcfoznsyp
Tue 15 Sep 2015, 11:18 pm
»
Foto De Novinhas No Banheiro Da Escola
by
jaesgushdtcfoznsyp
Sat 04 Jul 2015, 11:01 pm
»
Foto De Novinhas No Banheiro Da Escola
by
jaesgushdtcfoznsyp
Sat 04 Jul 2015, 10:55 pm
»
Foto De Novinhas No Banheiro Da Escola
by
jaesgushdtcfoznsyp
Sat 04 Jul 2015, 10:53 pm
»
Foto De Novinhas No Banheiro Da Escola
by
jaesgushdtcfoznsyp
Sat 04 Jul 2015, 10:53 pm
»
Foto De Novinhas No Banheiro Da Escola
by
jaesgushdtcfoznsyp
Sat 04 Jul 2015, 10:52 pm
»
Nina Love Songs
by
jaesgushdtcfoznsyp
Tue 09 Jun 2015, 3:23 pm
»
Digital_insanity_keygen
by
flemmudi
Tue 16 Jul 2013, 2:21 am
»
Wifi Hack Password 2013 Pass.txt
by
flemmudi
Sat 13 Jul 2013, 4:01 am
»
Allok 3gp Psp Mp4 Ipod Video Converter 6.2.0603 Serial Key.rar.rar
by
flemmudi
Thu 11 Jul 2013, 11:52 am
»
Schweser Pro 2012 Level 1 Download
by
flemmudi
Wed 10 Jul 2013, 6:56 am
DIỄN ĐÀN TRƯỜNG THPT THANH CHƯƠNG 3
::
TIN TỨC TỪ ĐỜI SỐNG
::
Thông tin mới nhất về đời sống
Share
|
Thủ lĩnh mới của al-Qaeda sẽ là kẻ thù số 1 của Mỹ
Tác giả
Thông điệp
hoabattuqn
Thành Viên
Chỗ ở hiện nay
:
gò vấp
Posts
:
9
Points
:
23
Thanked
:
0
Tham Gia Từ
:
22/02/2011
Tiêu đề: Thủ lĩnh mới của al-Qaeda sẽ là kẻ thù số 1 của Mỹ
Wed 04 May 2011, 5:14 pm
(TNO) Trong khi việc ai sẽ là người thay thế Osama bin Laden vẫn chưa
thể xác định thì Giám đốc Cơ quan Tình báo Trung ương Mỹ (CIA) Leon
Panetta hôm 3.5 tuyên bố rằng, bất cứ ai lên thay thế trùm khủng bố này
sẽ trở thành kẻ thù số 1 của Mỹ.
Theo hãng tin AFP, cấp phó của bin Laden, Ayman al-Zawahiri, được cho
sẽ đảm nhận vị trí dẫn đầu mạng lưới khủng bố quốc tế al-Qaeda song
hiện vẫn chưa rõ, khi nào điều này sẽ trở thành hiện thực.
Ayman al-Zawahiri, người được cho sẽ trở thành thủ lĩnh mới của al-Qaeda - Ảnh: AFP
Một số nhà phân tích cho rằng, al-Qaeda có lẽ sẽ mất một thời gian
khá dài mới có thủ lĩnh mới vì cấp phó al-Zawahiri hiện lo lắng nhiều
hơn đến sự an toàn của bản thân sau khi Mỹ thực hiện các chiến dịch đặc
biệt tiêu diệt bin Laden.
Phát biểu trên kênh truyền hình CBS của Mỹ, ông Panetta nhấn mạnh:
“Hắn ta (al-Zawahiri) nhanh chóng lọt vào danh sách ứng viên thủ lĩnh.
Nhưng, tôi có thể đảm bảo rằng, bất cứ ai lên thay thế bin Laden đều là
nhân vật số 1 trong danh sách (bị truy nã) của chúng tôi”.
Trong khi đó, giới phân tích cho rằng, cái chết của bin Laden không
đồng nghĩa với việc mọi hoạt động của al-Qaeda sẽ chấm dứt mà ngược lại,
có thể khiến cho tổ chức này càng hoạt động “dữ dằn” hơn.............
Cập nhật nhanh tin tức trong ngày tai đây
suc khoe
doi song
khoa hoc
Thủ lĩnh mới của al-Qaeda sẽ là kẻ thù số 1 của Mỹ
Trang
1
trong tổng số
1
trang
Permissions in this forum:
Bạn
không có quyền
trả lời bài viết
DIỄN ĐÀN TRƯỜNG THPT THANH CHƯƠNG 3
::
TIN TỨC TỪ ĐỜI SỐNG
::
Thông tin mới nhất về đời sống
DIỄN ĐÀN TRƯỜNG THPT THANH CHƯƠNG 3
::
TIN TỨC TỪ ĐỜI SỐNG
::
Thông tin mới nhất về đời sống
Chuyển đến
:
Chọn Diễn Đàn
|
|--HOẠT ĐỘNG CỦA DIỄN ĐÀN
| |--Hướng Dẫn Sử Dụng Diễn Đàn
| |--Tin tức nhà trường
| |--Thông tin từ ban quản trị
| |--Góp ý-Hỏi Đáp-Thắc Mắc
|
|--CHÀO MỪNG THÀNH VIÊN MỚI
| |--Mọi người vào đây ghi danh giới thiệu về bản thân nào
|
|--CÂU LẠC BỘ HỌC TẬP
| |--Khoa học xã hội và nhân văn
| |--Khoa học tự nhiên
| |--Hướng nghiệp
| |--Đáp án các môn thi tốt nghiệp
| |--Kết quả học tập học sinh Thanh Chương 3
|
|--CÁC THẾ HỆ HỌC SINH THPT THANH CHƯƠNG 3
| |--Các khối lớp học
| |--Cựu học sinh
| |--Kỉ Niệm Về Mái Trường THPT Thanh Chương 3
|
|--THƯ VIỆN VIDEO-HÌNH ẢNH
| |--Hình ảnh của thành viên
| |--Hình ảnh-Video trường lớp
| |--Hình ảnh-Video-Tư Liệu quê hương
| |--Hình ảnh-video hài hước linh tinh
|
|--QUÁN TRÀ ĐÁ THANH CHƯƠNG 3
| |--Tâm sự cùng nhau
| |--Linh tinh-Chúc tụng
| |--Câu lạc bộ những người độc thân vui vẻ
| |--Chúc Mừng Sinh Nhật Thành Viên
|
|--TIN TỨC TỪ ĐỜI SỐNG
| |--Thông tin mới nhất về đời sống
| |--Bài báo hay trên internet
|
|--THƯ GIÃN VÀ GIẢI TRÍ
| |--Văn Thơ
| |--Vui cười
| |--ÂM NHẠC-NHẠC HOT
| |--Quà tặng âm nhạc
| |--Game
| |--Thể thao
|
|--CÂU LẠC BỘ TIN HỌC
| |--VIRUT VÀ CÁC VẪN ĐỀ LIÊN QUAN
| |--Phần mềm,phần cứng
| |--Trao đổi kinh nghiệm
| |--Mạng-Diễn Đàn-Website
| |--Thành viên yêu cầu phần mềm
|
|--QUẢNG CÁO-RAO VẶT
Free forum
|
©
phpBB
|
Free forum support
|
Liên hệ
|
Report an abuse
|
Create your own blog

WARC-Truncated: length

X-XSS-Protection: 1; mode=block

Cache-Control: no-cache

X-Content-Type-Options: nosniff

Vary: User-Agent

P3P: CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"

Content-Type: text/html; charset=utf-8


text:
Portal
Tìm kiếm
Thành viên
Lịch
Hướng dẫn
Quyên góp
Xin chào quý khách!
Đăng nhập
Đăng ký
Đăng nhập
Tên dùng
Mật khẩu:
Quên mật khẩu?
Remember me
Thủ Thuật Access
Thông tin của dudoan
dudoan
(Banned)
Ngày đăng ký:
28-10-15
Sinh nhật:
Không rõ
Giờ khu vực:
23-03-17 lúc 11:26 PM
Tình trạng:
Offline
Thông tin của dudoan
Tham gia:
28-10-15
Lần đăng nhập mới
05-02-16, 12:08 AM
Tổng bài viết:
0 (0 bài viết mỗi ngày | 0% bài viết mỗi ngày)
(
Bài viết thành viên này
)
Total Threads:
0 (0 threads per day | 0 percent of total threads)
(
Chủ đề thành viên này
)
Thời gian duyệt:
30 Phút, 18 Giây
Members Referred:
0
Tiền Access:
50.00Ac$
Items:
This user has no items.
(
View All Items
)
Chi tiết liên lạc của dudoan
Hộp thư (lưu ý: email phải nhận được mail để kích hoạt tài khoản)
Gửi cho dudoan 1 email.
Tin cá nhân:
Gửi cho dudoan 1 tin nhắn.
User Comments
You can't send a comment to this user because your usergroup can't send comments.
There is no comments to show :(
Diễn Đàn Thơ Văn Thi Ẩm Lâu
|
Nhà Hàng Sông Thơ
Liên hệ
Thủ Thuật Access
Lên trên
Bản rút gọn
Tin RSS
Thời gian hiện tại :
24-03-17, 12:26 AM
Mã nguồn bởi
MyBB
, © 2002-2017
MyBB Group
.

Server: HostVDC

Cache-Control: no-cache, must-revalidate

Set-Cookie: sid=6b37732bd890bc1a16f89c214874025d; path=/forum/; domain=.thuthuataccess.com; HttpOnly


text:
Dự án Elite Park nằm MT đường Ung Văn Khiêm- Quận Bình Thạnh (Ngay mũi tàu, góc đường D1
và Ung Văn Khiêm mở rộng 40m) do công ty CP XNK Tổng Hợp Miền Nam làm chủ đầu tư.
Dự án Elite Park có 24 tầng bao gồm 02 tầng hầm, 03 tầng thương mại và 19 tầng chung cư ( 208 căn )
Diện tích: 58,14 – 58,69 ( Từ 1 đến 2 PN ) , 84,3 – 94,9 ( Căn 2 PN ), 127,43 – 127,93 ( Căn 3 PN ).
Tiện ích: Công viên bờ sông Sài Gòn, bến du thuyền, sân bóng đá, hồ bơi, phòng gym, TTTM\....
Đây là dự án duy nhất có tới 52.7% không gian xanh, mật độ xây dựng cực thấp.
Thời gian giao nhà: Quý 4/2017 (hiện dự án đã xong hầm).
Giá bán: 1.9 tỷ/căn.( Số lượng có hạn )
Phương thức thanh toán: Thanh toán theo tiến độ xây dựng.
Ngân hàng An Bình cho vay 80%
Mọi chi tiết vui lòng liên hệ: 0901832839 ( Phòng quản lý dự án )

markdown:
Dự án Elite Park nằm MT đường Ung Văn Khiêm- Quận Bình Thạnh (Ngay mũi tàu, góc đường D1
và Ung Văn Khiêm mở rộng 40m) do công ty CP XNK Tổng Hợp Miền Nam làm chủ đầu tư.
Dự án Elite Park có 24 tầng bao gồm 02 tầng hầm, 03 tầng thương mại và 19 tầng chung cư ( 208 căn )
Diện tích:
**58,14 – 58,69** ** ( ** **Từ 1 đến 2 PN ** **) , ** **84,3 – 94,9 ** **( ** **Căn** **2 PN ** **),** ** 127,43 – 127,93 ** **( ** **Căn** **3 PN ** **).**
Tiện ích: Công viên bờ sông Sài Gòn, bến du thuyền, sân bóng đá, hồ bơi, phòng gym, TTTM\....
Đây là dự án duy nhất có tới 52.7% không gian xanh, mật độ xây dựng cực thấp.
Thời gian giao nhà: Quý 4/2017 (hiện dự án đã xong hầm).
Giá bán: 1.9 tỷ/căn.( Số lượng có hạn )
Phương thức thanh toán: Thanh toán theo tiến độ xây dựng.
Ngân hàng An Bình cho vay 80%
Mọi chi tiết vui lòng liên hệ:
**0901832839** **( Phòng quản lý dự án )**

Server: nginx


text:
Hiển thị việc làm 1 - 10 trong tổng số 67
Sắp xếp: độ chính xác - ngày
-
-
Tuyển dụng các vị trí Kiểm soát viên, Chuyên viên, Giao dịch viênNgân Hàng Bưu Điện Liên Việt - Phú ThọThực hiện công tác kinh doanh đối với Khách hàng:. Kiểm soát viên. Lập và triển khai kế hoạch kinh doanh của Tổ Giao dịch ngân quỹ. Chuyên viên Khách hàng....
-
Giám Sát Bán Hàng Thái LongHàng tiêu dùng Thái Long - Phú ThọNhân viên chính thức. Hỗ trợ nhà phân phối điều hành và phát triển kinh doanh:. Doanh số, & KPI:. Bán lẻ / Bán sỉ, Bán hàng / Kinh doanh, Tiếp thị trực tuyến....
-
Phú Thọ - Trình Dược Viên Kênh Nhà ThuốcGon Sa - Phú ThọGONSA đang tìm kiếm những bạn trẻ năng động, yêu thích Kinh Doanh, độc lập thời gian và chủ động trong công việc cho vị trí Trình Dược Viên/ Nhân Viên Kinh...
-
Nhân Viên Tư Vấn Bán Hàng Tại Lâm Thao - Phú ThọThương Mại ACS Việt Nam - Phú ThọCơ hội thăng tiến cho nhân viên làm việc tốt. Báo cáo công việc hàng ngày và kết quả kinh doanh cho quản lý. Ưu tiên có kinh nghiệm tư vấn bán hàng và mong muốn...
-
Nhân Viên Bán Hàng - Khu Vực Việt Trì, Phú ThọPico - Phú ThọLương tháng 13 theo kết quả kinh doanh năm. Ưu tiên ứng viên đã có kinh nghiệm bán hàng và hiểu biết về sản phẩm Viễn thông, kỹ thuật số, điện tử, điện lạnh,...
-
Nhân viên kinh doanhSản xuất và Thương mại Kim Sen - Phú ThọƯu tiên ứng viên đã có kinh nghiệm trong ngành gỗ. Giấy chứng nhận sức khỏe. Sơ yếu lý lịch có xác nhận của chính quyền địa phương....
-
Nhân viên phòng Kinh DoanhNOW VINA - Phú ThọCông nhân/ Nhân viên. Kinh doanh/ Chăm sóc - Quản lý khách hàng. Chứng minh thư nhân dân; Sơ yếu lí lịch dán ảnh có xác nhận của địa phương;...
-
NHÂN VIÊN ĐÀO TẠO TRUNG TÂM ANH NGỮ OCEAN EDUGiáo Dục Đại Dương - Phú ThọThưởng kinh doanh. Ứng viên tự trang bị điện thoại cá nhân. Ưu tiên ứng viên là giáo viên tiếng Anh. Mức kinh nghiệm:....
-
NHÂN VIÊN SALE-TƯ VẤN TUYỂN SINH TRUNG TÂM ANH NGỮ OCEAN EDUGiáo Dục Đại Dương - Phú ThọThưởng kinh doanh. Ứng viên tự trang bị điện thoại cá nhân. Gửi tin nhắn; Phối hợp với nhân viên trong chi nhánh triển khai các chương trình sự kiện;...
-
TRỢ LÝ NHÂN SỰ - BIG C VIỆT TRÌHệ Thống Big C Việt Nam - Phú ThọTốt nghiệp Cao đẳng trở lên, chuyên ngành quản trị kinh doanh, nhân sự,. Quản lý hồ sơ của nhân viên tiếp thị. Theo dõi, bảo quản đồng phục và tủ của nhân viên....
Tạo thông báo việc làm
Bạn có thể huỷ thông báo việc làm bất cứ lúc nào.

markdown:
Hiển thị việc làm
**1 - 10**trong tổng số **67**
Sắp xếp:
[độ chính xác](?st=cx)- [ngày](?st=date)
-
-
## Ngân Hàng Bưu Điện Liên Việt - Phú Thọ
[Tuyển dụng các vị trí Kiểm soát viên, Chuyên viên, Giao dịch viên](/vi%E1%BB%87c/Tuy%E1%BB%83n-d%E1%BB%A5ng-c%C3%A1c-v%E1%BB%8B-tr%C3%AD-Ki%E1%BB%83m-so%C3%A1t-vi%C3%AAn%2C-Chuy%C3%AAn-vi%C3%AAn%2C-Giao-d%E1%BB%8Bch-vi%C3%AAn-591d343074469047?sp=serp&sponsored=false&sr=1)Thực hiện công tác **kinh** **doanh**đối với Khách hàng:. Kiểm soát **viên**. Lập và triển khai kế hoạch **kinh** **doanh**của Tổ Giao dịch ngân quỹ. Chuyên **viên**Khách hàng....
-
## Hàng tiêu dùng Thái Long - Phú Thọ
[Giám Sát Bán Hàng Thái Long](/vi%E1%BB%87c/Gi%C3%A1m-S%C3%A1t-B%C3%A1n-H%C3%A0ng-Th%C3%A1i-Long-37487db18974075d?sp=serp&sponsored=false&sr=1) **Nhân** **viên**chính thức. Hỗ trợ nhà phân phối điều hành và phát triển **kinh** **doanh**:. **Doanh**số, & KPI:. Bán lẻ / Bán sỉ, Bán hàng / **Kinh** **doanh**, Tiếp thị trực tuyến....
-
## Gon Sa - Phú Thọ
[Phú Thọ - Trình Dược Viên Kênh Nhà Thuốc](/vi%E1%BB%87c/Ph%C3%BA-Th%E1%BB%8D---Tr%C3%ACnh-D%C6%B0%E1%BB%A3c-Vi%C3%AAn-K%C3%AAnh-Nh%C3%A0-Thu%E1%BB%91c-7819c9532631779c?sp=serp&sponsored=false&sr=1)GONSA đang tìm kiếm những bạn trẻ năng động, yêu thích **Kinh** **Doanh**, độc lập thời gian và chủ động trong công việc cho vị trí Trình Dược **Viên**/ **Nhân** **Viên** **Kinh**...
-
## Thương Mại ACS Việt Nam - Phú Thọ
[Nhân Viên Tư Vấn Bán Hàng Tại Lâm Thao - Phú Thọ](/vi%E1%BB%87c/Nh%C3%A2n-Vi%C3%AAn-T%C6%B0-V%E1%BA%A5n-B%C3%A1n-H%C3%A0ng-T%E1%BA%A1i-L%C3%A2m-Thao---Ph%C3%BA-Th%E1%BB%8D-21394ebe7c2c7848?sp=serp&sponsored=false&sr=1)Cơ hội thăng tiến cho **nhân** **viên**làm việc tốt. Báo cáo công việc hàng ngày và kết quả **kinh** **doanh**cho quản lý. Ưu tiên có **kinh**nghiệm tư vấn bán hàng và mong muốn...
-
## Pico - Phú Thọ
[Nhân Viên Bán Hàng - Khu Vực Việt Trì, Phú Thọ](/vi%E1%BB%87c/Nh%C3%A2n-Vi%C3%AAn-B%C3%A1n-H%C3%A0ng---Khu-V%E1%BB%B1c-Vi%E1%BB%87t-Tr%C3%AC%2C-Ph%C3%BA-Th%E1%BB%8D-9311a1b2f143229a?sp=serp&sponsored=false&sr=1)Lương tháng 13 theo kết quả **kinh** **doanh**năm. Ưu tiên ứng **viên**đã có **kinh**nghiệm bán hàng và hiểu biết về sản phẩm **Viễn**thông, kỹ thuật số, điện tử, điện lạnh,...
-
## Sản xuất và Thương mại Kim Sen - Phú Thọ
[Nhân viên kinh doanh](/vi%E1%BB%87c/Nh%C3%A2n-vi%C3%AAn-kinh-doanh-f5c613da11b7370e?sp=serp&sponsored=false&sr=1)Ưu tiên ứng **viên**đã có **kinh**nghiệm trong ngành gỗ. Giấy chứng **nhận**sức khỏe. Sơ yếu lý lịch có xác **nhận**của chính quyền địa phương....
-
## NOW VINA - Phú Thọ
[Nhân viên phòng Kinh Doanh](/vi%E1%BB%87c/Nh%C3%A2n-vi%C3%AAn-ph%C3%B2ng-Kinh-Doanh-005b9d17f0bdfad2?sp=serp&sponsored=false&sr=1)Công **nhân**/ **Nhân** **viên**. **Kinh** **doanh**/ Chăm sóc - Quản lý khách hàng. Chứng minh thư **nhân**dân; Sơ yếu lí lịch dán ảnh có xác **nhận**của địa phương;...
-
## Giáo Dục Đại Dương - Phú Thọ
[NHÂN VIÊN ĐÀO TẠO TRUNG TÂM ANH NGỮ OCEAN EDU](/vi%E1%BB%87c/NH%C3%82N-VI%C3%8AN-%C4%90%C3%80O-T%E1%BA%A0O-TRUNG-T%C3%82M-ANH-NG%E1%BB%AE-OCEAN-EDU-8049f9c36bef9696?sp=serp&sponsored=false&sr=1)Thưởng **kinh** **doanh**. Ứng **viên**tự trang bị điện thoại cá **nhân**. Ưu tiên ứng **viên**là giáo **viên**tiếng Anh. Mức **kinh**nghiệm:....
-
## Giáo Dục Đại Dương - Phú Thọ
[NHÂN VIÊN SALE-TƯ VẤN TUYỂN SINH TRUNG TÂM ANH NGỮ OCEAN EDU](/vi%E1%BB%87c/NH%C3%82N-VI%C3%8AN-SALE-T%C6%AF-V%E1%BA%A4N-TUY%E1%BB%82N-SINH-TRUNG-T%C3%82M-ANH-NG%E1%BB%AE-OCEAN-EDU-20fd4ad0408d6f27?sp=serp&sponsored=false&sr=1)Thưởng **kinh** **doanh**. Ứng **viên**tự trang bị điện thoại cá **nhân**. Gửi tin nhắn; Phối hợp với **nhân** **viên**trong chi nhánh triển khai các chương trình sự kiện;...
-
## Hệ Thống Big C Việt Nam - Phú Thọ
[TRỢ LÝ NHÂN SỰ - BIG C VIỆT TRÌ](/vi%E1%BB%87c/TR%E1%BB%A2-L%C3%9D-NH%C3%82N-S%E1%BB%B0---BIG-C-VI%E1%BB%86T-TR%C3%8C-43860d3c84567397?sp=serp&sponsored=false&sr=1)Tốt nghiệp Cao đẳng trở lên, chuyên ngành quản trị **kinh** **doanh**, **nhân**sự,. Quản lý hồ sơ của **nhân** **viên**tiếp thị. Theo dõi, bảo quản đồng phục và tủ của **nhân** **viên**....
Tạo thông báo việc làm
Bạn có thể huỷ thông báo việc làm bất cứ lúc nào.

Server: Apache


text:
Hiển thị việc làm 1 - 10 trong tổng số 42
Sắp xếp: độ chính xác - ngày
-
-
Nhân Viên Thiết Kế- - DL HIỀN ANH - Quảng NamThiết kế bao bì, nhãn mác sản phẩm Công ty. Thiết kế các sản phẩm khi tổ chức hội thảo (Backdrop, Standee, giấy mời, thiết kế các sản phẩm trang trí gian hàng,...
-
Nhân viên thiết kếPrime Đại Lộc - Quảng Nam+ Thiết kế mẫu gạch. Nghệ thuật/Thiết kế. + Thành thạo ít nhất một trong các phần mềm thiết kế sau:. + Có kinh nghiệm 2 năm trong lĩnh vực đồ họa, thiết kế nội...
-
Chuyên Viên Thiết Kế Đồ HọaPrime Group - Quảng NamThiết kế mẫu gạch. Nghệ thuật/ Thiết kế/ Giải trí. Thành thạo Photoshop và ít nhất một trong các phần mềm thiết kế sau:....
-
KỸ SƯ THIẾT KẾ HỆ NƯỚC-CƠ KHÍ-HVAC-PCCC-MÔI TRƯỜNGKỹ Thuật Công Nghệ Sài Gòn - Quảng NamThiết kế và giám sát, vẽ shop, bóc khối lượng thành thạo. Tham gia lập, thẩm định/duyệt biện pháp thi công, thiết kế kỹ thuật các công trình....
-
Nhân Viên Quản Lý Chất LượngM& H Industry Việt Nam - Quảng NamNếu có vấn đề xảy ra đối với thiết bị sản xuất, thì báo cho nhà sản xuất thiết bị, tìm hiểu nguyên nhân và tìm giải pháp khắc phục....
-
Nhân Viên Kinh Doanh Viettelpost Quảng NamChi nhánh Bưu Chính Viettel Quảng Nam - Quảng NamNhân viên kinh doanh. Nhân viên kinh doanh chuyên dịch vụ Chuyển phát nhanh trong nước và quốc tế. Thiết lập, Quản lý khách hàng mục tiêu và khách hàng hiện tại...
-
Chuyên Viên Hành ChínhÔ tô Trường Hải miền Bắc Trung Bộ - Quảng NamCông ty hỗ trợ cơm trưa, sim điện thoại cho cán bộ nhân viên. Quản lý đội ngũ nhân viên nhà ăn, căn-tin đảm bảo An toàn vệ sinh thực phẩm....
-
Nhân Viên Kinh Doanh Chi Nhánh Quảng NamSơn Hà SSP Việt Nam - Quảng NamNhân viên được làm việc trong một môi trường năng động, chuyên nghiệp, có tính kỷ luật và trách nhiệm cao. Xây dựng và thiết lập tuyến bán hàng tại khu vực....
-
Nhân Viên Hành Chính Kỹ ThuậtÔ tô Trường Hải miền Bắc Trung Bộ - Quảng NamCông ty hỗ trợ cơm trưa, sim điện thoại cho cán bộ nhân viên. Nhận và trang bị kịp thời trang thiết bị , phương tiện làm việc cho CBCNV....
-
Nhân Viên Xuất Nhập KhẩuCTY PANKO TAM THĂNG - Quảng NamGiấy xác nhận hạnh kiểm. Hộ khẩu, chứng minh nhân dân và giấy khám sức khỏe. Ưu tiên ứng viên có kinh nghiệm ngành dệt may , xuất nhập khẩu hàng gia công....
Tạo thông báo việc làm
Bạn có thể huỷ thông báo việc làm bất cứ lúc nào.

markdown:
Hiển thị việc làm
**1 - 10**trong tổng số **42**
Sắp xếp:
[độ chính xác](?st=cx)- [ngày](?st=date)
-
-
## - - DL HIỀN ANH - Quảng Nam
[Nhân Viên Thiết Kế](/vi%E1%BB%87c/Nh%C3%A2n-Vi%C3%AAn-Thi%E1%BA%BFt-K%E1%BA%BF-03d41e96c5fdf5ab?sp=serp&sponsored=false&sr=1) **Thiết** **kế**bao bì, **nhãn**mác sản phẩm Công ty. **Thiết** **kế**các sản phẩm khi tổ chức hội thảo (Backdrop, Standee, giấy mời, **thiết** **kế**các sản phẩm trang trí gian hàng,...
-
## Prime Đại Lộc - Quảng Nam
[Nhân viên thiết kế](/vi%E1%BB%87c/Nh%C3%A2n-vi%C3%AAn-thi%E1%BA%BFt-k%E1%BA%BF-2db60d0ff5ab3543?sp=serp&sponsored=false&sr=1)+ **Thiết** **kế**mẫu gạch. Nghệ thuật/ **Thiết** **kế**. + Thành thạo ít nhất một trong các phần mềm **thiết** **kế**sau:. + Có kinh nghiệm 2 năm trong lĩnh vực đồ họa, **thiết** **kế**nội...
-
## Prime Group - Quảng Nam
[Chuyên Viên Thiết Kế Đồ Họa](/vi%E1%BB%87c/Chuy%C3%AAn-Vi%C3%AAn-Thi%E1%BA%BFt-K%E1%BA%BF-%C4%90%E1%BB%93-H%E1%BB%8Da-4ef0c000bdcf117e?sp=serp&sponsored=false&sr=1) **Thiết** **kế**mẫu gạch. Nghệ thuật/ **Thiết** **kế**/ Giải trí. Thành thạo Photoshop và ít nhất một trong các phần mềm **thiết** **kế**sau:....
-
## Kỹ Thuật Công Nghệ Sài Gòn - Quảng Nam
[KỸ SƯ THIẾT KẾ HỆ NƯỚC-CƠ KHÍ-HVAC-PCCC-MÔI TRƯỜNG](/vi%E1%BB%87c/K%E1%BB%B8-S%C6%AF-THI%E1%BA%BET-K%E1%BA%BE-H%E1%BB%86-N%C6%AF%E1%BB%9AC-C%C6%A0-KH%C3%8D-HVAC-PCCC-M%C3%94I-TR%C6%AF%E1%BB%9CNG-8063add4c1f1fc2e?sp=serp&sponsored=false&sr=1) **Thiết** **kế**và giám sát, vẽ shop, bóc khối lượng thành thạo. Tham gia lập, thẩm định/duyệt biện pháp thi công, **thiết** **kế**kỹ thuật các công trình....
-
## M& H Industry Việt Nam - Quảng Nam
[Nhân Viên Quản Lý Chất Lượng](/vi%E1%BB%87c/Nh%C3%A2n-Vi%C3%AAn-Qu%E1%BA%A3n-L%C3%BD-Ch%E1%BA%A5t-L%C6%B0%E1%BB%A3ng-0487a18da2509781?sp=serp&sponsored=false&sr=1)Nếu có vấn đề xảy ra đối với **thiết**bị sản xuất, thì báo cho nhà sản xuất **thiết**bị, tìm hiểu nguyên **nhân**và tìm giải pháp khắc phục....
-
## Chi nhánh Bưu Chính Viettel Quảng Nam - Quảng Nam
[Nhân Viên Kinh Doanh Viettelpost Quảng Nam](/vi%E1%BB%87c/Nh%C3%A2n-Vi%C3%AAn-Kinh-Doanh-Viettelpost-Qu%E1%BA%A3ng-Nam-b26e04f4464e3290?sp=serp&sponsored=false&sr=1) **Nhân** **viên**kinh doanh. **Nhân** **viên**kinh doanh chuyên dịch vụ Chuyển phát nhanh trong nước và quốc tế. **Thiết**lập, Quản lý khách hàng mục tiêu và khách hàng hiện tại...
-
## Ô tô Trường Hải miền Bắc Trung Bộ - Quảng Nam
[Chuyên Viên Hành Chính](/vi%E1%BB%87c/Chuy%C3%AAn-Vi%C3%AAn-H%C3%A0nh-Ch%C3%ADnh-33f632e293ebff30?sp=serp&sponsored=false&sr=1)Công ty hỗ trợ cơm trưa, sim điện thoại cho cán bộ **nhân** **viên**. Quản lý đội ngũ **nhân** **viên**nhà ăn, căn-tin đảm bảo An toàn vệ sinh thực phẩm....
-
## Sơn Hà SSP Việt Nam - Quảng Nam
[Nhân Viên Kinh Doanh Chi Nhánh Quảng Nam](/vi%E1%BB%87c/Nh%C3%A2n-Vi%C3%AAn-Kinh-Doanh-Chi-Nh%C3%A1nh-Qu%E1%BA%A3ng-Nam-3a9e35b6e7ead117?sp=serp&sponsored=false&sr=1) **Nhân** **viên**được làm việc trong một môi trường năng động, chuyên nghiệp, có tính kỷ luật và trách nhiệm cao. Xây dựng và **thiết**lập tuyến bán hàng tại khu vực....
-
## Ô tô Trường Hải miền Bắc Trung Bộ - Quảng Nam
[Nhân Viên Hành Chính Kỹ Thuật](/vi%E1%BB%87c/Nh%C3%A2n-Vi%C3%AAn-H%C3%A0nh-Ch%C3%ADnh-K%E1%BB%B9-Thu%E1%BA%ADt-3fcf18f51c092522?sp=serp&sponsored=false&sr=1)Công ty hỗ trợ cơm trưa, sim điện thoại cho cán bộ **nhân** **viên**. **Nhận**và trang bị kịp thời trang **thiết**bị , phương tiện làm việc cho CBCNV....
-
## CTY PANKO TAM THĂNG - Quảng Nam
[Nhân Viên Xuất Nhập Khẩu](/vi%E1%BB%87c/Nh%C3%A2n-Vi%C3%AAn-Xu%E1%BA%A5t-Nh%E1%BA%ADp-Kh%E1%BA%A9u-dc525ba1cc94be71?sp=serp&sponsored=false&sr=1)Giấy xác **nhận**hạnh kiểm. Hộ khẩu, chứng minh **nhân**dân và giấy khám sức khỏe. Ưu tiên ứng **viên**có kinh nghiệm ngành dệt may , xuất nhập khẩu hàng gia công....
Tạo thông báo việc làm
Bạn có thể huỷ thông báo việc làm bất cứ lúc nào.