转:http://hi.baidu.com/chenjingzhou/blog/item/5be13926d6a41eaa4723e89c
第一步:响应鼠标左键按下消息,设置矩形原点、开始矩形绘制标记
void CRectView::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
m_bFirstDraw=TRUE;
m_bDraw=TRUE;
m_ptOrigin=point;
CView::OnLButtonDown(nFlags, point);
}
第二步:响应鼠标左键弹起消息,取消绘制标记和选择区域
void CRectView::OnLButtonUp(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
m_bDraw=FALSE;
// 取消选择区域虚线框
CClientDC dc(this);
CRect rect(0,0,0,0);
dc.DrawDragRect(rect,CSize(1,1),m_rect,CSize(1,1),NULL,NULL);
// 如果不想取消,请将上面3行代码注释掉即可
CView::OnLButtonUp(nFlags, point);
}
第三步:响应鼠标移动消息,应用CDC::DrawDragRect()绘制矩形
void CRectView::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
if(m_bDraw==TRUE)
{
}
CView::OnMouseMove(nFlags, point);
}
联系客服