现在的位置: 首页 > 综合 > 正文

VC++如何添加鼠标停留和离开的消息

2013年10月10日 ⁄ 综合 ⁄ 共 1149字 ⁄ 字号 评论关闭

  .h文件加入:  
                    afx_msg       LRESULT     OnMouseLeave(WPARAM   ,LPARAM   );        
  afx_msg       LRESULT     OnMouseHover(WPARAM   ,LPARAM   );        
   
  .cpp文件加入:  
              ON_MESSAGE(WM_MOUSELEAVE,OnMouseLeave)        
              ON_MESSAGE(WM_MOUSEHOVER,OnMouseHover)    
  LRESULT   CIconButton::OnMouseLeave(WPARAM     wParam,LPARAM   lParam)        
  {      
  InvalidateRect(NULL);  
  return       0;        
  }        
   
  LRESULT     CIconButton::OnMouseHover(WPARAM       wParam,LPARAM       lParam)        
  {        
  CClientDC   dc(this);  
  CRect   rt;  
  GetClientRect(&rt);  
  dc.Draw3dRect(0,0,  
  m_rect.right-m_rect.left,m_rect.bottom-m_rect.top,  
  RGB(0,0,0),RGB(10,10,10));  
  return       0;        
  }        
   
   
  void   CIconButton::OnMouseMove(UINT   nFlags,   CPoint   point)    
  {  
  //   TODO:   Add   your   message   handler   code   here   and/or   call   default  
   
  CButton::OnMouseMove(nFlags,   point);  
  TRACKMOUSEEVENT       tme;        
  tme.cbSize=sizeof(TRACKMOUSEEVENT);        
  tme.dwFlags=TME_HOVER       |       TME_LEAVE;        
  tme.dwHoverTime=HOVER_DEFAULT;      
  tme.hwndTrack=m_hWnd;    
          _TrackMouseEvent(&tme);        
  }

抱歉!评论已关闭.