 |
11樓
巨大八爪鱼
2016-4-26 22:18
樓上是第三、四個參數都不為NULL的例子。
總的來說,第三個參數決定要把哪塊區域剪下來平移(如果為NULL就把整個客戶區剪下來平移),第四個參數是決定平移之後哪塊區域需要反映到屏幕上(如果為NULL的話就把所作的改動全部反映到屏幕上)。 平移後暴露出來的區域都會自動交給WM_PAINT處理。
|
 |
12樓
巨大八爪鱼
2016-4-26 22:27
至於ScrollWindowEx函數,前四個完全一樣。 第六個是輸出參數,表示滾動後哪個區域暴露出來了。 例如在上面的程序中(160,50)(200,70)這塊40x20的矩形就被暴露出來了。
|
 |
13樓
巨大八爪鱼
2016-4-26 22:36
第五個參數和第六個參數作用一樣,只不過是HRGN類型的變量(存放任意形狀的區域)。
|
 |
14樓
巨大八爪鱼
2016-4-26 22:38
 當重繪區域是不規則圖形時,HRGN能精確地保存這個區域。
|
 |
15樓
巨大八爪鱼
2016-4-26 22:40
 但是RECT不能精確保存這個區域。它只能表示重繪區域所在的最小矩形區域。
|
 |
16樓
巨大八爪鱼
2016-4-27 10:17
// 返回值表示操作是否成功 BOOL ScrollDC(HDC hDC, int dx, int dy, const RECT *lprcScroll, const RECT *lprcClip, HRGN hrgnUpdate, LPRECT lprcUpdate); BOOL ScrollWindow(HWND hWnd, int XAmount, int YAmount, const RECT *lpRect, const RECT *lpClipRect);
// 返回值: 暴露出據矩形區域SIMPLEREGION,非矩形區域COMPLEXREGION,無暴露區域NULLREGION;操作失敗ERROR int ScrollWindowEx(HWND hWnd, int dx, int dy, const RECT *prcScroll, const RECT *prcClip, HRGN hrgnUpdate, LPRECT prcUpdate, UINT flags);
|