今天做老师留下来的作业题,莫名其妙出现Bug,然后发现是MFC消息处理机制的问题,在响应鼠标双击前,会先产生一个单击鼠标消息,这里是我的解决方法。
单击响应:
void CMouseView::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
MSG message;
//CString str1;
//CString str2;
//str1.Format(_T("%ld"), point.x);
//str2.Format(_T("%ld"), point.y);
DWORD st = GetTickCount();
while (1)
{
if (PeekMessage(&message, NULL, 0, 0, PM_REMOVE))
{
TranslateMessage(&message);
DispatchMessage(&message);
if (message.message == WM_LBUTTONDBLCLK)
{
/* if (num != 5)
{
num++;
MessageBox(_T("(") + str1 + _T(",") + str2 + _T(")"));
break;
}
else*/
break;
}
}
DWORD et = GetTickCount();
if (et - st > 200)
{
num = 0;
MessageBox(_T("one"));
break;
}
}
CVi