|
|
[bgcolor=#ffffff]本篇《[/bgcolor][bgcolor=#ffffff]Windows[/bgcolor][bgcolor=#ffffff]界面编程第九篇位图显示特效交错效果》将讲解位图的交错显示效果。如下图所示:[/bgcolor]
[bgcolor=#ffffff][attachment=1135]
[/bgcolor]
[bgcolor=#ffffff]
[/bgcolor]
[bgcolor=#ffffff][attachment=1136]
[/bgcolor]
[bgcolor=#ffffff]
[/bgcolor]
在程序设计上,水平交错只要将图像分为奇数行和偶数行,然后一个从上到下,一个从下到上逐渐显示出来即可。垂直交错只要将图像分为奇数列和偶数列,然后一个从左到右,一个从右到左逐渐显示出来即可。
下面给出代码:
- // 交错 - 水平
- //《Windows界面编程第九篇 位图显示特效 交错效果》
- //http://blog.csdn.net/morewindows/article/details/8696720
- void AnimateDraw_StaggeredHorizontal(HDC hdc, HDC hdcMem, int nWidth, int nHeight, UINT nIntervalTime = 10)
- {
- int i, j;
- for (i = 0;i <= nHeight; i += 2)
- {
- for (j = i; j > 0; j -= 2)
- {
- // 奇数行 从上往下
- BitBlt(hdc, 0, j - 1, nWidth, 1, hdcMem, 0, nHeight - (i - j - 1), SRCCOPY);
- // 偶数行 从下往上
- BitBlt(hdc, 0, nHeight - j, nWidth, 1, hdcMem, 0, i - j, SRCCOPY);
- }
- Sleep(nIntervalTime);
- }
- BitBlt(hdc, 0, 0, nWidth, nHeight, hdcMem, 0, 0, SRCCOPY);
- }
- // 交错 - 垂直
- //《Windows界面编程第九篇 位图显示特效 交错效果》
- //http://blog.csdn.net/morewindows/article/details/8696720
- void AnimateDraw_StaggeredVertical(HDC hdc, HDC hdcMem, int nWidth, int nHeight, UINT nIntervalTime = 10)
- {
- int i, j;
- for (i = 0; i <= nWidth; i += 2)
- {
- for (j = i; j > 0; j -= 2)
- {
- // 奇数列 从左往右
- BitBlt(hdc, j - 1, 0, 1, nHeight, hdcMem, nWidth - (i - j - 1), 0, SRCCOPY);
- // 偶数行 从右往左
- BitBlt(hdc, nWidth - j, 0, 1, nHeight, hdcMem, i - j, 0, SRCCOPY);
- }
- Sleep(nIntervalTime);
- }
- BitBlt(hdc, 0, 0, nWidth, nHeight, hdcMem, 0, 0, SRCCOPY);
- }
复制代码 [bgcolor=#ffffff]转载请标明出处,原文地址:[/bgcolor][bgcolor=#ffffff]http://blog.csdn.net/morewindows/article/details/8696720[/bgcolor]
[bgcolor=#ffffff]Windows[/bgcolor][bgcolor=#ffffff]界面编程之位图显示特效系第九--第[/bgcolor][bgcolor=#ffffff]十三篇位图显示特效合集[/bgcolor]下载
[attachment=1137]
[attachment=1138]
[attachment=1139]
|
|