(Xin cho phép tôi gọi đó là các sự kiện chuột Up and Mouse Down. MFC của tôi là một chút gỉ. Và có công cụ này được gọi là NET của những người bị rối tung lên thuật ngữ của tôi thời gian gần đây ;-)
câu chuyện ngắn : Bạn không chỉ muốn biết về Nhấp chuột. Bạn cần nhiều hơn nữa.
câu chuyện dài:
Mặc dù đây là phản trực giác, dường như chỉ đơn giản là muốn một cái click chuột là khá phổ biến. Thông thường, bạn sẽ muốn thực hiện một số thao tác trên Mouse Down và thực hiện thêm một số thao tác trên Mouse Up. Bí quyết là chỉ đơn giản là theo dõi các tin nhắn Mouse Up là không đủ: Chuột xuống có thể không xảy ra trong cửa sổ của bạn. Bạn có coi đó là một nhấp chuột hợp lệ không? Đặc biệt xem xét việc xử lý Mouse Down (chẳng hạn như chọn một mục) đã không xảy ra.
Tiếp tục đưa ra lý do, bạn không nên dựa vào việc nhận Chuột lên sau khi bạn xử lý Chuột xuống: Người dùng có thể đã di chuyển chuột và nhả nút ở nơi khác (nghĩ rằng drag'n'drop), trong trường hợp đó, bạn không nhận được sự kiện MouseUp ... trừ khi bạn bắt chuột trên MouseDown để đảm bảo rằng bạn nhận được sự kiện chuột lên đến Chuột lên ngay cả khi con chuột rời khỏi cửa sổ của bạn.
Tất cả trong tất cả, bạn kết thúc theo dõi Chuột xuống, chụp chuột và khi bạn nhận được Chuột lên, chỉ cần kiểm tra xem bạn có sở hữu ảnh chụp hay không. Nếu không, con chuột đã được nhấp đúp (không có con chuột thứ hai xuống) hoặc chuột xuống xảy ra ở một nơi khác do đó bạn rất có thể không quan tâm về điều này Chuột lên.
Trong kết luận: Không có thông báo MouseClick đơn giản vì bạn sẽ không đi xa lắm: Bạn cần phải xử lý nhiều thư hơn và triển khai nhiều cơ chế hơn.
Oh! Và nếu giao dịch của bạn với một điều khiển hiện tại đã xử lý tất cả các mục này và các công cụ lựa chọn, chẳng hạn như listview, rất có thể là nó cung cấp một thông báo tùy chỉnh tương tự như Item Activate hoặc Item Selection Changed.
Nguồn
2009-02-03 19:29:00