我用鼠标会只“十字”,代码如下void CVpView::OnMouseMove(UINT nFlags, CPoint point)
{
CRect rect;
GetClientRect(&rect);
CClientDC* pDC = new CClientDC(this);
nOldMode= pDC->GetROP2();
pDC->SetROP2(R2_NOT);
pDC->MoveTo(0,Anchor.y);
pDC->LineTo(rect.Width(),Anchor.y);
pDC->MoveTo(Anchor.x,0);
pDC->LineTo(Anchor.x,rect.Height()); pDC->MoveTo(0,point.y);
pDC->LineTo(rect.Width(),point.y);
pDC->MoveTo(point.x,0);
pDC->LineTo(point.x,rect.Height()); Anchor.x=point.x;
Anchor.y=point.y;
pDC->SetROP2(nOldMode);
delete pDC;
CView::OnMouseMove(nFlags, point);
}
请教:如何教鼠标第一次进入客户区市所绘的“十字”擦除;另外鼠标从客户区出去怎样擦除出客户区前的最后一点的“十字”?
{
CRect rect;
GetClientRect(&rect);
CClientDC* pDC = new CClientDC(this);
nOldMode= pDC->GetROP2();
pDC->SetROP2(R2_NOT);
pDC->MoveTo(0,Anchor.y);
pDC->LineTo(rect.Width(),Anchor.y);
pDC->MoveTo(Anchor.x,0);
pDC->LineTo(Anchor.x,rect.Height()); pDC->MoveTo(0,point.y);
pDC->LineTo(rect.Width(),point.y);
pDC->MoveTo(point.x,0);
pDC->LineTo(point.x,rect.Height()); Anchor.x=point.x;
Anchor.y=point.y;
pDC->SetROP2(nOldMode);
delete pDC;
CView::OnMouseMove(nFlags, point);
}
请教:如何教鼠标第一次进入客户区市所绘的“十字”擦除;另外鼠标从客户区出去怎样擦除出客户区前的最后一点的“十字”?
可以处理WM_MOUSEHOVER(鼠标第一次进入)和WM_MOUSELEAVE(鼠标离开)消息