0
我很困惑應用程序如何使用Direct2D處理鼠標輸入。Direct2D C++用戶輸入
考慮這樣的情況:
- 說我畫了一個球的窗口。如果我將光標移到球上,它會改變顏色。
- 這是否意味着應用程序必須輪詢鼠標,並檢查遊標是否在應用程序運行時間的每一秒都在球上。
- 當你有更多的項目時,這不會降低性能嗎?有沒有另一種方式比輪詢,換句話說,是一堆if語句。
我很困惑應用程序如何使用Direct2D處理鼠標輸入。Direct2D C++用戶輸入
考慮這樣的情況:
通常,應用程序將偵聽WM_MOUSEMOVE事件並更新事件處理程序中的任何受影響的對象(或者在發生昂貴的操作時發出更改事件的對象信號)。渲染代碼不需要輪詢鼠標光標的位置。
還有對WM_MOUSEMOVE事件進行測試,它基本上輪詢每一幀。 – bluejamesbond
你能說清楚你的意思嗎?如果代碼正在更新WM_MOUSEMOVE事件上的模型,那麼它不會輪詢每一幀,因爲WM_MOUSEMOVE不是輪詢機制。當鼠標移動時,Windows將發送事件。 – gigaplex
@ gigaplex.So我的意思是說...雖然WM_MOUSEMOVE不是一個輪詢方法,但確定您的光標在窗口的某個區域中的邏輯非常類似於輪詢。鼠標每移動一個像素點,你都必須瀏覽你繪製的所有項目列表,以查看在鼠標移動時這些項目是否具有行爲的情況下,鼠標是否在該項目上。這不是很慢嗎? – bluejamesbond