我想在这区域只画一次,用WM_MOUSEMOVE画的好频繁阿

解决方案 »

  1.   


    对啊!  设个标志,第一次响应WM_MOUSEMOVE的时候画,离开区域时更新为原来的
      

  2.   

    if(flag)
    {
    draw();
    flag = false;
    }
      

  3.   

    手动处理WM_MOUSELEAVE消息事件,在OnMouseMove中处理if( !m_bMouseTracking )
    {//   鼠标第一次移入窗口时,   请求一个WM_MOUSELEAVE   消息  
    TRACKMOUSEEVENT   tme;  
    tme.cbSize    =   sizeof(tme);  
    tme.hwndTrack =   m_hWnd;  
    tme.dwFlags   =   TME_LEAVE | TME_HOVER;   
    tme.dwHoverTime   =   1;   
    m_bMouseTracking  = _TrackMouseEvent( &tme );// 鼠标轨迹
    } 其余在OnMouseLeave中处理还原代码.
      

  4.   

    用WM_MouseLeave行不,我只是一个窗口的部分区域啊,不是整个窗口啊
      

  5.   

    是啊,我没用BUTTON,用图片做的
      

  6.   

    全部都在OnPaint里画,画的内容用数据控制