在鼠标移出CTrackRectDlg的window区域就扑捉不到鼠标坐标了。这个是怎么回事情?void CTrackRectDlg::OnBnClickedButton1()
{
   HWND hOldWnd = ::SetCapture(m_hWnd);
}void CTrackRectDlg::OnMouseMove(UINT nFlags, 
CPoint point)
{
CPoint p = point;
this->ClientToScreen(&p); CString Info;
Info.Format("CTrackRectDlg::OnMouseMove() x=%d,y=%d \r\n", p.x,p.y);
TRACE(Info); CDC *pDC = this->GetDC();
pDC->SetBkColor(RGB(0,128,128));
pDC->TextOut(10,10,Info); CDialog::OnMouseMove(nFlags, point);
}

解决方案 »

  1.   

    应该是NT系统对SetCapture()有限制,鼠标在窗口范围内按住不放,这时将鼠标移动窗体外面,该窗体也能够捕获鼠标动作,但当鼠标在窗体内没有动作,这里你将鼠标移动窗体外,该窗体就不会捕获鼠标事件。这是NT系统刚改的吧,98系统没这个限制。--书上看到的,没试过。