我觉得是不是在CView的子类中处理wm_mousemove消息。
CMainFrame只是窗口的框架,都是些nc消息。

解决方案 »

  1.   

    CMainFrame只是处理消息某些具有界面因数的消息不能接受到吧
      

  2.   

    不好意思,还是把MessageBox()换成SetCursorPos()吧:)前面的注释均取消。
      

  3.   

    为什么要在sdi的frame里处理鼠标移动呢?
    这样你应该相应的消息不是WM_MOUSEMOVE,而是WM_NCMOUSEMOVE
    试验一下,肯定就可以了。
      

  4.   

    在加消息时选错了函数。应在VIEW中
      

  5.   

    CMainFrame的OnMouseMove可以响应标题,边框的鼠标移动。客户区的移动不归它管。
      

  6.   

    WM_NCMOUSEMOVE就是非客户区的鼠标移动消息.整个frame都是非客户区,用客户区的WM_MOUSEMOVE当然不会有什么效果。
      

  7.   

    怎么回事?没发现WM_NCMOUSEMOVE消息啊!
    View里根本没有 WM_N 开头的消息。
      

  8.   

    你为什么要在frame里面处理WM-MOUSEMOVE消息呢.应该是由C***View处理的呀.
      

  9.   

    你必须要把消息种类(在添加消息句柄对话框的右下脚)选为window.
    如果找不到那么你自己手动添加消息处理句柄也成。
    WM_NCMOUSEMOVE的处理函数形式为:
    afx_msg void OnNcMouseMove( UINT nHitTest, CPoint point );
    messagemap定义宣告宏为:ON_WM_NCMOUSEMOVE()
      

  10.   

    相应NC消息是在frame中相应,而不是在view中。
      

  11.   

    懂了。
    学回去了。
    这么做主要是因为CHtmlView不能响应鼠标消息,所以我截取MainFrm.cpp中的MouseMove消息,然后再发给CHtmlView。想不到这样也不行。
    即然TopMostWindow不能响应MouseMove消息,它为什么要把这个消息放在映射表中,难道微软是白痴?
      

  12.   

    分数过明天再给吧,我还想听听关于CHtmlView处理鼠标消息的问题。