1. 程式人生 > >在WM_SETCURSOR訊息處理函式中設定滑鼠的游標

在WM_SETCURSOR訊息處理函式中設定滑鼠的游標

如果滑鼠游標在一個視窗內移動且滑鼠輸入沒有被捕獲則視窗會接收到WM_SETCURSOR訊息,只要滑鼠移動OnMouseMove就會自動傳送 WM_SETCURSOR從而觸發OnSetCursor,因此在設計改變滑鼠游標的程式時,一般不要在OnMouseMOve事件中呼叫SetCursor,容易引起指標閃爍,應該在在WM_SETCURSOR訊息處理函式OnSetCursor中設定滑鼠的游標。eg:

BOOL CMyButton::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message)
{
	// TODO: 在此新增訊息處理程式程式碼和/或呼叫預設值
	::SetCursor(LoadCursor(NULL,MAKEINTRESOURCE(IDC_HAND))); 
	return true;

	return CButton::OnSetCursor(pWnd, nHitTest, message);
}

參考文章:http://liuyangxdgs.blog.163.com/blog/static/2913776320124118481193/