大家好!
我使用多文档视图.在 CMDIChildWnd类包含CSplitterWnd,其上创建两个视图CFormView1,CFormView2(派生于CFormView).CFormView1上容纳控件,看起来象
工具条(长而笮,如下)
|-----------------------------------------|  
|                CFormView1               |
|-----------------------------------------|
|                                         |
|                CFormView2               |
|                                         |
|                                         |
|                                         |
|                                         |
|                                         |
|-----------------------------------------|问题是我在CFormView1上画图,模仿一个按钮(因为我在视图上无法使用CBitmapButton),当鼠标快速地移动到CFormView2上,按钮状态无法改变,慢一点就没事.我是在CFormView1的OnLButtonDown,OnMouseMove,OnLButtonUp中处理按钮部分绘制的(其状态要改变),当鼠标快速地移动到CFormView2上,CFormView1的OnMouseMove可能由于鼠标的灵敏度不够没被执行.那么怎样使CFormView1的OnMouseMove能够得到执行?

解决方案 »

  1.   

    在Frame的PreTranslateMessage里处理WM_MOUSEMOVE
      

  2.   

    为什么会无法使用cbitmapbutton呢
      

  3.   

    用::TrackMouseEvent(***)函数指定TME_LEAVE参数可以使鼠标离开时某个指定的窗口时接受到WM_MOUSELEAVE消息。typedef struct tagTRACKMOUSEEVENT {
        DWORD cbSize;
        DWORD dwFlags;  // 指定TME_LEAVE
        HWND  hwndTrack;  // 指定窗口句柄
        DWORD dwHoverTime; 
    } TRACKMOUSEEVENT, *LPTRACKMOUSEEVENT;处理消息可以在ON_MESSAGE(WM_MOUSELEAVE,OnMouseLeave)中。
      

  4.   

    ::TrackMouseEvent(***)放在哪里?
      

  5.   

    ::TrackMouseEvent  出错,说是在 global namespace 无此函数
      

  6.   

    在Frame的PreTranslateMessage里处理WM_MOUSEMOVE有效果。谢谢