|
|
[bgcolor=#ffffff]水平百叶窗[/bgcolor]
[bgcolor=#ffffff][p_w_upload=1152]
[/bgcolor]
[bgcolor=#ffffff]垂直百叶窗[/bgcolor]
[p_w_upload=1153]
[bgcolor=#ffffff]在程序设计上,百叶窗将图像分开若干条,每条再不断扩张即可。下面给出代码:[/bgcolor]- //百叶窗效果 - 水平
- //《Windows界面编程第十篇 位图显示特效 百叶窗效果》
- //http://blog.csdn.net/morewindows/article/details/8696722
- void AnimateDraw_JalousieHorizontal(HDC hdc, HDC hdcMem, int nWidth, int nHeight, UINT nIntervalTime = 15, UINT nJalousieNum = 10)
- {
- int nJalousieHeight;
- nJalousieHeight = nHeight / nJalousieNum; //每个窗子的高度
- int i, j;
- for (i = 0; i <= nJalousieHeight; i++ )
- {
- for(j = 0; j < nJalousieNum; j++) //每个窗子
- {
- BitBlt(hdc, 0, j * nJalousieHeight, nWidth, i, hdcMem, 0, j * nJalousieHeight, SRCCOPY);
- }
- Sleep(nIntervalTime);
- }
- BitBlt(hdc, 0, 0, nWidth, nHeight, hdcMem, 0, 0, SRCCOPY);
- }
- //百叶窗效果 - 垂直
- //《Windows界面编程第十篇 位图显示特效 百叶窗效果》
- //http://blog.csdn.net/morewindows/article/details/8696722
- void AnimateDraw_JalousieVertical(HDC hdc, HDC hdcMem, int nWidth, int nHeight, UINT nIntervalTime = 15, UINT nJalousieNum = 10)
- {
- int nStep;
- nStep = nWidth / nJalousieNum;//每个窗子的高度
- int i, j;
- for (i = 0; i <= nStep; i++ )
- {
- for(j = 0;j < nJalousieNum; j++)//每个窗子
- {
- BitBlt(hdc, j * nStep, 0, i, nHeight,hdcMem, j * nStep, 0, SRCCOPY);
- }
- Sleep(nIntervalTime);
- }
- BitBlt(hdc, 0, 0, nWidth, nHeight, hdcMem, 0, 0, SRCCOPY);
- }
复制代码
[bgcolor=#ffffff]转载请标明出处,原文地址:[/bgcolor]http://blog.csdn.net/morewindows/article/details/8696722
[bgcolor=#ffffff]完整的程序在[/bgcolor]
[bgcolor=#ffffff]http://www.hifyl.com/read.php?tid=2763 [/bgcolor]
|
|