第一种是一个写字板形式的,做完后觉得和日常书写挺象的,特把过程介绍一下.
首先建立一个基于单文档的应用程序,在视图类中加两个私有变量,CPoint m_pOrigin,BOOL m_bFlags,
m_bFlag主要是为了判断鼠标是否按下.在视图类中加入WM_LBUTTONDOWN,WM_MOUSEMOVE,WM_LBUTTONUP的消息响应函数.
第二步,在视类的构造函数中初使化成员变量m_pOrigin = CPoint(0,0),m_bFlags = false,
然后在三个消息响应函数中的代码如下图所示
void CDrawTestView::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
m_pOrigin = m_pEnd = point;
m_bFlag = true;
CView::OnLButtonDown(nFlags, point);
}
void CDrawTestView::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CDC *dc = GetDC();
if(m_bFlag)
{
/*dc->MoveTo(m_pOrigin);
dc->LineTo(point);
m_pOrigin = point;
dc->MoveTo(m_pOrigin);
dc->LineTo(point);*/
char buffer[10];
int len = dc->SetROP2(R2_NOT);
_itoa(len,buffer,10);
CString str;
str.Format("%c %c %d",buffer[0],buffer[1],strlen(buffer));
MessageBox(str);
//MessageBox(buffer);
dc->MoveTo(m_pOrigin);
dc->LineTo(m_pEnd);
m_pEnd = point;
dc->MoveTo(m_pOrigin);
dc->LineTo(m_pEnd);
}
CView::OnMouseMove(nFlags, point);
}
void CDrawTestView::OnLButtonUp(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
m_bFlag = false;
CView::OnLButtonUp(nFlags, point);
}
最后可以运行一下,是不是和平时写字差不多啊