在单文档视图工程中,C**view类与CMainFrm类中均有鼠标消息 OnLButtonDown  OnLButtonUp和OnMouseMove,想问一下在这两个类里面的消息有什么不同吗,为什么我在CMainFrm中添加的画线消息不能用,而在C**view中添加的却能用呢?

解决方案 »

  1.   

    MFC先响应的是C**view中的消息.你在CMainFrm中添加的画线消息就得不到调用.你将C**view中的消息屏蔽掉就可以调用CMainFrm中添加的画线消息了
      

  2.   

    因为视窗口是覆盖在框架窗口上的,所以一般情况下客户区的鼠标消息只能由视窗口捕获!!!
    你要想框架窗口可以响应鼠标,键盘消息只有通过视类操作
    比如绘图,如果想在框架窗口上绘图,可以在视类里获得框架窗口的客户区
    CClientDC dc(this);//获得的DC只能在视窗口的客户区绘图
    CClientDC dc(GetParent());//获得DC可以在框架窗口的客户区绘图