
Nguyên bản được gửi bởi
redsun_it
Khi bắt tọa độ Mouse, mình đã sử dụng LOWORD và HIWORD để lấy 16byte tọa độ x và 16 byte tọa độ y trong vùng làm việc. Mình dùng cửa sổ 640x480,trường hợp của mình thế này: từ tọa độ (0,0) mình load một tấm ảnh lên thì đưa chuột vào vị trí này, nó có phát sinh sự kiện. Nhưng khi load tấm ảnh ở tọa độ ví dụ như (0,315) thì khi mình đưa chuột vào vị trí này thì không nhận sự kiện mà phải đưa chuột đến (0,460) mới nhận sự kiện.Vùng nhận sự kiên của mình là lấy tọa độ cộng cho kích thước ảnh theo pixels. Bạn nào biết xử lý lỗi này thì giúp dùm mình với.Cảm ơn rất nhiều.
vùng nhận sự kiện = tọa độ + kích thước ảnh.
cho hỏi tọa độ đây là tọa độ của bức ảnh hả bạn.
nếu vậy thì bạn thử kiểm tra nếu chuột trong vùng tọa độ thì bắt chuột.
không thì thôi.
bạn thử đoạn code này coi sao:
PHP Code:
void CMyDemoDlg::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
if((point.x>10 && point.x<300) && (point.y>10 && point.y<100) )
{
CString s;
s.Format("Chuot:(%d,%d)",point.x,point.y);
MessageBox(s);
}
CDialog::OnMouseMove(nFlags, point);
}
nếu vẫn chưa được bạn có thể up lên hàm load ảnh và hàm bắt chuột của bạn rồi mọi người giúp đỡ cho.