2012-04-17 38 views
1

我想使用CScrollBar導航對話框中的項目列表。我正在捕捉對話框中的OnVScroll消息,並且滾動條正確地響應以單擊條頂部和底部的箭頭,並單擊條的範圍以完整頁面前進。問題在於,當您嘗試拖動拇指時,直到鬆開鼠標按鈕纔會響應,此時拇指移動到正確的位置。CScrollBar拇指跟蹤不起作用

我用spy ++來查找WM_VSCROLL消息,看起來他們只是在你點擊拇指,當你釋放它而不是在拖動的時候,才用SB_THUMBTRACK模式發送。然而,CScrollBar上的msdn頁面表示,這些消息應該在拖動拇指時連續發送。由於我沒有收到這些消息,我不知道拇指在哪裏,也無法設置當前位置。

我不認爲郵件在其他地方被截取,首先是因爲即使設置爲記錄所有郵件,spy ++也沒有看到郵件,其次是因爲當單擊並釋放時,欄會收到兩條thumbtrack郵件。

我有這個問題,無論我給對話框的WS_VSCROLL風格,或者我創建一個CScrollBar並將其放置在對話框中。

有什麼我失蹤了嗎?

回答

1

確保您不會將SB_THUMBTRACK與SB_THUMBPOSITION混淆。前者是您實時滾動所需的內容,而後者僅在用戶釋放滑塊時才發送。您可能還會檢查性能設置(控制面板 - >查看高級系統設置 - >高級選項卡 - >性能 - >設置... - >視覺效果。可能會禁用一些實時效果(例如Smooth-scroll列表框,或者其他的,取決於你使用的Windows版本)。

+0

SB_THUMBPOSITION正常觸發,但是當鼠標點擊並釋放時,我還接收到SB_THUMBTRACK。平滑滾動已經啓用,改變它並不影響我的問題。 – 2012-04-17 18:52:06