其實對WM_MOUSEHOVER消息的處理,因為WindowImplBase基類中對此消息未處理,所以在自己的窗口類中實現:
.h文件中加入
1 LRESULT OnMouseHover( UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled );
.cpp文件加入實現
1 LRESULT CLoginWnd::OnMouseHover( UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled ) 2 { 3 POINT pt = { GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam) }; 4 CControlUI* pHover = m_PaintManager.FindControl(pt); 5 if( pHover == NULL ) return 0; 6 /*演示懸停在下載列表的圖標上時,動態變換下載圖標狀態顯示*/ 7 if(pHover->GetName() == _T("testbtn")) 8 { 9 MessageBox(NULL, _T("鼠標在某控件例如按鈕上懸停后,對目標控件操作,這里改變了狀態圖標大小"), _T("DUILIB DEMO"), MB_OK); 10 ((CButtonUI *)pHover)->ApplyAttributeList( 11 _T("normalimage=\"file='downlist_pause.png' dest='15,9,32,26'\"")); 12 } 13 return 0; 14 }
