VC++ MFC view类中添加鼠标响应

注释宏中间的内容显示为灰色。

建立MFC时,view类是覆盖在框架类窗口之上的。在建立的窗口上的所有显示都是在view类之上的,因此在处理消息响应时应该在

view类中进行处理。

MFC消息映射的机制,与实现原理?
消息映射就是建立一个消息和函数的对应表,当收到消息时查找表,如果表中有相应的消息,就将消息交给相应的函数处理。
通俗点讲,消息映射表就是一个记录了消息号和相应处理函数的数组。当然表中还有其他信息,这里先说矛盾的主要方面了。其中消

息映射表中的每个元素都是一个结构体变量,他的成员很多,最主要的就是消息号和相对应的消息处理函数。
关于消息映射表的查找,是通过虚函数实现的,通过父类的虚函数查找父类及其层层子类定义的消息映射表。如果找不到,就交给默

认的窗口处理函数处理。 如果一个类的消息映射表中定义了一个消息处理,那么就不再继续查找子类或者子类的子类,从而实现了

覆盖。

CDC类包含画图函数。CDC类还包含一个子类CClientDC,此类不需要显示调用GetDC和ReleaseDC,分别在构造和析构时调用.CDC类还包

含另一个子类CWindowDC,此类也不需要显式调用GetDC和ReleaseDC,此类可以在非客户区域画图。

//画一条直线示例

void CTestMFCView::OnLButtonDown(UINT nFlags, CPoint point)
{
 // TODO: Add your message handler code here and/or call default
 //MessageBox("view click!");
 m_ptOrigin = point;
 CView::OnLButtonDown(nFlags, point);
}

 

 

void CTestMFCView::OnLButtonUp(UINT nFlags, CPoint point)
{
 // TODO: Add your message handler code here and/or call default
 /*HDC hdc;
 hdc = ::GetDC(m_hWnd);
 MoveToEx(hdc,m_ptOrigin.x,m_ptOrigin.y,NULL);
 LineTo(hdc,point.x,point.y);
 ::ReleaseDC(m_hWnd,hdc);*/

 

 /*CDC *pDC = GetDC();
 pDC->MoveTo(m_ptOrigin);
 pDC->LineTo(point);
 ReleaseDC(pDC);*/

 

 /*CClientDC dc(this);
 //CClientDC dc(GetParent());
 dc.MoveTo(m_ptOrigin);
 dc.LineTo(point);*/

 

 //CWindowDC dc(this);
 //CWindowDC dc(GetParent());
 /*CWindowDC dc(GetDesktopWindow());
 dc.MoveTo(m_ptOrigin);
 dc.LineTo(point);*/

 

 CView::OnLButtonUp(nFlags, point);
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值