首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

Windows 滾輪消息 zDelta 參數:WHEEL_DELTA(120) 的倍數表示旋轉距離與方向

     編輯:程式設計疑難解答

參數含義

`OnMouseWheel(UINT nFlags, short zDelta, CPoint point)`

  • `zDelta`:**旋轉距離的有方向倍數**,單位為 `WHEEL_DELTA`(= 120)。
  • **正值**:向前滾動(遠離用戶,頁面向上)。
  • **負值**:向後滾動(朝向用戶,頁面向下)。
  • **絕對值**:`|zDelta| / 120` = 滾動的「檔位/齒數」數。

示例

用戶操作zDelta 值說明
向前滾 1 檔+1201 × WHEEL_DELTA
向前滾 3 檔+3603 × WHEEL_DELTA
向後滾 2 檔-240-2 × WHEEL_DELTA

處理代碼

void CMyView::OnMouseWheel(UINT nFlags, short zDelta, CPoint pt) {
    int lines = zDelta / WHEEL_DELTA; // 正負表示方向
    if (lines > 0) {
        for (int i = 0; i < lines; ++i) ScrollUp();
    } else {
        for (int i = 0; i < -lines; ++i) ScrollDown();
    }
    CView::OnMouseWheel(nFlags, zDelta, pt);
}

註

  • 高精度滑鼠(無檔位)可能發送非 120 倍數的 `zDelta`,仍按比例處理即可。
  • 系統設置「滾動行數」影響 `WM_MOUSEWHEEL` 發送頻率,但 `zDelta` 始終反映物理旋轉量。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved