 |
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);
|