Share via


ScrollWindowEx 函式 (winuser.h)

ScrollWindowEx函式會捲動指定視窗的工作區內容。

語法

int ScrollWindowEx(
  [in]  HWND       hWnd,
  [in]  int        dx,
  [in]  int        dy,
  [in]  const RECT *prcScroll,
  [in]  const RECT *prcClip,
  [in]  HRGN       hrgnUpdate,
  [out] LPRECT     prcUpdate,
  [in]  UINT       flags
);

參數

[in] hWnd

類型: HWND

處理要捲動工作區的視窗。

[in] dx

類型: int

指定水準捲動的裝置單位數量。 此參數必須是負值,才能向左捲動。

[in] dy

類型: int

指定垂直捲動的裝置單位數量。 此參數必須是負值才能向上捲動。

[in] prcScroll

類型:const RECT*

RECT結構的指標,指定要捲動之工作區的部分。 如果此參數為 Null,則會捲動整個工作區。

[in] prcClip

類型:const RECT*

RECT結構的指標,其中包含裁剪矩形的座標。 只有裁剪矩形內的裝置位會受到影響。 從矩形外部捲動到內部的位會繪製;不會繪製從矩形內部捲動到外部的位。 此參數可以是 Null

[in] hrgnUpdate

類型: HRGN

處理已修改以保存捲動使區域失效的區域。 此參數可以是 Null

[out] prcUpdate

類型: LPRECT

RECT結構的指標,該結構會透過捲動來接收矩形的界限失效。 此參數可以是 Null

[in] flags

類型: UINT

指定控制項捲動的旗標。 此參數可以是下列值的組合。

意義
SW_ERASE
使用 SW_INVALIDATE 旗標指定時,將 WM_ERASEBKGND 訊息傳送至視窗,以清除新失效的區域。
SW_INVALIDATE
使捲動後 hrgnUpdate 參數所識別的區域失效。
SW_SCROLLCHILDREN
捲動所有與 中國Scroll 參數所指向之矩形交集的子視窗。 子視窗會依 dxdy 參數所指定的圖元數目捲動。 系統會將 WM_MOVE 訊息傳送至與 中國Scroll 矩形交集的所有子視窗,即使它們未移動也一樣。
SW_SMOOTHSCROLL
使用平滑捲動捲動捲動。 使用flags參數的HIWORD部分來指出應該花費多少時間,以毫秒為單位,平滑捲動作業。

傳回值

類型: int

如果函式成功,則傳回值為 SIMPLEREGION (矩形不正確區域) 、COMPLEXREGION (非矩形不正確區域;重迭的矩形) 或 NullREGION (沒有不正確區域) 。

如果函式失敗,傳回值為 ERROR。 若要取得擴充的錯誤資訊,請呼叫 GetLastError

備註

如果未指定SW_INVALIDATE和SW_ERASE旗標, ScrollWindowEx 就不會使捲動的來源區域失效。 如果已設定這其中一個旗標, ScrollWindowEx 就會使這個區域失效。 直到應用程式呼叫 UpdateWindow 函式、呼叫 RedrawWindow 函式 (指定RDW_UPDATENOW或RDW_ERASENOW旗標) ,或從應用程式佇列擷取 WM_PAINT 訊息,區域才會更新。

如果視窗具有 WS_CLIPCHILDREN 樣式, hrgnUpdateprcUpdate 所指定的傳回區域代表必須更新之捲動視窗的總區域,包括需要更新之子視窗中的任何區域。

如果指定了SW_SCROLLCHILDREN旗標,如果捲動子視窗的一部分,系統就不會正確更新畫面。 位於來源矩形外部的捲動子視窗部分不會清除,而且在其新目的地中未正確重新繪製。 若要移動未完全位於 中國Scroll所指定矩形內的子視窗,請使用 DeferWindowPos 函式。 如果已設定SW_SCROLLCHILDREN旗標,且插入號矩形與滾動矩形交集,則游標會重新置放。

不論視窗具有CS_OWNDCCS_CLASSDC類別樣式, (中國、中國Clip、中國Update 和 hrgnUpdate) 的所有輸入和輸出座標都會決定為用戶端座標。 如有必要,請使用 LPtoDPDPtoLP 函式來回轉換邏輯座標。

範例

如需範例,請參閱 使用WM_PAINT訊息捲動文字

規格需求

   
最低支援的用戶端 Windows Vista [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2003 [僅限傳統型應用程式]
目標平台 Windows
標頭 winuser.h (包括 Windows.h)
程式庫 User32.lib
Dll User32.dll
API 集合 ext-ms-win-ntuser-misc-l1-2-0 (于 Windows 8.1)

另請參閱

DPtoLP

DeferWindowPos

LPtoDP

其他資源

矩形

RedrawWindow

UpdateWindow