首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 開發固定背景圖片可捲動控件:問題分析、LockWindowUpdate 原理與捲動事件類型

     編輯:關於C語言

現象觀察與根因

WinForm 控件天生支援固定背景(背景不隨捲動移動),但 Windows 預設捲動繪圖操作會破壞此特性,導致背景破碎。

解決核心:LockWindowUpdate


[DllImport("user32.dll")]
extern static bool LockWindowUpdate(IntPtr hWndLock);
  • 參數為視窗控制代碼,0 表示解除鎖定
  • 同一時間全系統僅能鎖定一個視窗
  • 捲動時呼叫 LockWindowUpdate(Handle) 鎖定介面,阻擋系統預設捲動繪圖
  • 捲動結束呼叫 LockWindowUpdate(IntPtr.Zero) 解除鎖定並強制重繪

ScrollableControl 捲動事件類型

事件類型說明
SmallDecrement點擊左/上箭頭或按 Up 鍵
SmallIncrement點擊右/下箭頭或按 Down 鍵
LargeDecrement點擊滑塊左/上側或 Page Up
LargeIncrement點擊滑塊右/下側或 Page Down
ThumbPosition滑塊被移動到特定位置
ThumbTrack滑塊正在拖曳移動中
First移動到 Minimum 位置
Last移動到 Maximum 位置
EndScroll滑塊停止移動

「拖動時顯示視窗內容」系統設定影響

控制台 → 顯示 → 外觀 → 效果 → 「拖動時顯示視窗內容」

此選項決定拖曳滑塊時是否即時重繪,直接影響 ThumbTrack 與 ThumbPosition 觸發順序,必須在程式碼中統一處理。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved