public:
CMFC练习Doc* GetDocument() const
CPoint startpoint //起始点
RECT rcOldClip//原先的鼠标活动区域
//在头文件中声明尘埋
void CMFC练习View::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
GetClipCursor(&rcOldClip) // 获得原鼠标活动的有效区域
startpoint=point //鼠标所在点为起始点
SetCapture() //进行鼠标捕弊兄纳捉
CView::OnLButtonDown(nFlags, point)
}
void CMFC练习View::OnLButtonUp(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
ClipCursor(&rcOldClip) //恢复原来的鼠标活动区
ReleaseCapture() //释放鼠标捕捉
CView::OnLButtonUp(nFlags, point)
}
void CMFC练习View::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
CClientDC dc(this) //获得DC
HCURSOR cusor //鼠标光标句柄
RECT rcClip //限值矩形区域
if((nFlags&MK_LBUTTON)==MK_LBUTTON) //移动鼠标左键时是按下的
{
GetWindowRect(&rcClip)//获得客户去窗口区域
ClipCursor(&rcClip) //将鼠标的移动限制在客户区
if((nFlags&MK_CONTROL) !=MK_CONTROL)//ctrl键没有按下
{
cusor=AfxGetApp()->LoadStandardCursor(IDC_CROSS) //载入标准十字光标
SetCursor(cusor) //使用新光标
dc.MoveTo(startpoint.x,startpoint.y) //开始画线
dc.LineTo(point.x,point.y)
startpoint=point
}
else
{
cusor=AfxGetApp()->LoadStandardCursor(IDC_SIZENS) //载入标准箭头光标
SetCursor(cusor) //使用光标
CBrush mybrush(RGB(0,0,255)) //生成刷子
CBrush *oldbrush //租没原刷子指针
oldbrush=dc.SelectObject(&mybrush) //将刷子选入设备,并返回原刷子指针
dc.Rectangle(startpoint.x,startpoint.y,point.x,point.y) //绘制矩形
dc.SelectObject(oldbrush) //恢复原有刷子
}
}
CView::OnMouseMove(nFlags, point)
}
MFC自带的文本编辑框只能实现只输入数字,不能输入负号和小数点,要实现这个功能,需要自己从CEdit派生出一个类,然后为你的岩差文本框添加一粗咐皮个控制型的变量,类型就为你自己从CEdit派生的类简旦。我已经把示例程序发到你的邮箱了,请注意查收。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)