调用 CWnd:SetCapture 导致鼠标光标变成漏斗,单击窗口右上角的最小化、最大化、关闭按钮都没有反应。但是可以收到 WM_MOUSEMOVE 消息。
什么毛病?
BEGIN_MESSAGE_MAP(CMainWindow,CFrameWnd)
ON_WM_MOUSEMOVE()
ON_WM_LBUTTONDOWN()
ON_WM_NCHITTEST()
ON_WM_SETCURSOR() ON_WM_CREATE()
END_MESSAGE_MAP()
CMainWindow::CMainWindow()
{
Create(NULL,L"");
}
void CMainWindow::OnMouseMove(UINT nFlags,CPoint point)
{
TRACE(L"x=%d\ty=%d\n",point.x,point.y);
}void CMainWindow::OnLButtonDown( UINT nFlags, CPoint point )
{
// ::ReleaseCapture();
}BOOL CMainWindow::OnSetCursor( CWnd* pWnd, UINT nHitTest, UINT message )
{
TRACE(L"OnSetCursor\n");
return CFrameWnd::OnSetCursor(pWnd, nHitTest, message);
}LRESULT CMainWindow::OnNcHitTest( CPoint point )
{
TRACE(L"OnNcHitTest\n");
return CFrameWnd::OnNcHitTest(point);
}int CMainWindow::OnCreate(LPCREATESTRUCT a)
{
SetCapture();
return CFrameWnd::OnCreate(a);
}