3. [DrawView.cpp]
1 void CDrawView::OnLButtonDown(UINT nFlags, CPoint point)
2 {
3 // TODO: Add your message handler code here and/or call default
4 //MessageBox("OK");
5 CView::OnLButtonDown(nFlags, point);
6 }
OnLButtonDown函数实现。
MFC消息映射机制的具体实现方法是:在每个能接收和处理消息的类中(View,Frame。。)定义了一个消息和消息静态函数对照表,即消息映射表,在消息映射表中,消息与对应的消息处理函数指针是成对出现的。某个类能处理所有消息及其对应的消息处理函数的地址都列在这个对应的静态表中,当有消息需要处理时,程序只需要搜索改消息静态表,查看表中是否有改信息,就知道该类能否处理该消息,如果能,则通过静态表找到与之对应的消息处理函数。
在CDrawView类中,CDrawView对象相关一个窗口,当然有它的窗口句柄,该句柄与CDrawView对象的一个指针CDrawView*存在一一对应的关系。
4.2绘制线条
步骤1:定义一个CPoint全局变量,存放鼠标按下去的时候的起点信息;
步骤2:在鼠标按下去消息处记录鼠标位置;
步骤3:记录鼠标弹起时的位置,并在2个位置之间划一条线。
01 void CDrawView::OnLButtonUp(UINT nFlags, CPoint point)
02 {
03 // TODO: Add your message handler code here and/or call default
04 HDC hdc;
05 hdc=::GetDC(m_hWnd);
06 MoveToEx(hdc,m_point.x,m_point.y,NULL);
07 LineTo(hdc,point.x,point.y);
08 ::ReleaseDC(m_hWnd,hdc);
09 CView::OnLButtonUp(nFlags, point);
10 }