PDA

View Full Version : Mouse ???



ANHDAY
19-11-2002, 08:39
muốn khi người dùng move chuột ngang qua 1 button thì em sẽ biết và xử lý, làm thế nào để biết con chuột hiện đang nằm trong phạm vi của button đó?

bpmtri
19-11-2002, 08:46
Xin hỏi bạn lập trình trên DOS hay trên Windows?

anhcntt2000
19-11-2002, 16:11
em hãy nói rõ là lập trình trên dos hay window!
nếu trong dos thì em phải tính toà độ chuột và dồi ra toà độ bình thương(text hay graphic) và xem xem toa độ này có nằm trong button không!
còn window thì cũng khá dễ mà!

CrazyKing
19-11-2002, 19:58
Chào bạn,
Bình thường khi làm việc với dialog và các control, bạn chỉ chặn hàm xử lý message của dialog. Các control khi nhận được các sự kiện sẽ tự giải mã và nếu cần, nó sẽ gởi notification về dialog cha. Nhờ vậy, bạn mới biết được rằng button được nhấn
Do button chuẩn chỉ thông báo sư kiện BN_CLICKED, BN_DBCLICKED nên bạn sẽ không biết được sự kiện chuột đi ngang qua button. Để giải quyết điều này trong visual C++, bạn cần tạo một lớp CMyButton kế thừa từ CButton thông qua Wizard của Visual C++ (nhấn Ctrl+W trong Visual C++ 6). Trong lớp này, bạn có thể chặn sự kiện WM_MOUSEMOVE để thực hiện ý định của mình. Đây là kỹ thuật subclass được sử dụng nhiều khi lập trình với MFC!!!
HAVE FUN !!!