找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 232|回复: 0

Windows界面编程第十一篇 位图显示特效 随机积木效果

[复制链接]

52

主题

62

回帖

0

积分

版主

积分
0
发表于 2013-10-11 17:14:35 | 显示全部楼层 |阅读模式
[bgcolor=#ffffff]转载请标明出处,原文地址:[/bgcolor][bgcolor=#ffffff]http://blog.csdn.net/morewindows/article/details/8696724[/bgcolor]
[bgcolor=#ffffff]本篇《[/bgcolor][bgcolor=#ffffff]Windows[/bgcolor][bgcolor=#ffffff]界面编程第十一篇位图显示特效随机积木效果》将讲解位图的随机积木显示效果。如下图所示[/bgcolor]
[bgcolor=#ffffff][p_w_upload=1154]
[/bgcolor]
[bgcolor=#ffffff]
[/bgcolor]
[bgcolor=#ffffff]在程序设计上,随机积木效果是最简单的啦,只要一格一格的显示出整个位置即可:[/bgcolor]
[bgcolor=#ffffff][/bgcolor]
  1. // 随机积木
  2. //《Windows界面编程第十一篇 位图显示特效 随机积木效果》
  3. //http://blog.csdn.net/morewindows/article/details/8696724
  4. void AnimateDraw_RandomBlocks(HDC hdc, HDC hdcMem, int nWidth, int nHeight, UINT nIntervalTime = 15,
  5.                               int nRowBlocks = 10, int nColBlocks = 10)
  6. {
  7.     int nStepRow, nStepCol, nDisplayCount;
  8.     int nSumBlocks = nRowBlocks * nColBlocks;
  9.     bool *pFlagArray = new bool[nSumBlocks];
  10.     memset(pFlagArray, 0, sizeof(bool) * nSumBlocks);
  11.     nStepRow = nWidth / nRowBlocks;
  12.     nStepCol = nHeight / nColBlocks;
  13.     srand((unsigned)time(NULL));
  14.     nDisplayCount = 0; //已显示方格个数
  15.     while (true)
  16.     {
  17.         int row = rand() % nRowBlocks;
  18.         int col = rand() % nColBlocks;
  19.         if (pFlagArray[row * nColBlocks + col])
  20.             continue;
  21.         pFlagArray[row * nColBlocks + col] = true;
  22.         BitBlt(hdc, row * nStepRow, col * nStepCol, nStepRow, nStepCol,
  23.             hdcMem, row * nStepRow, col * nStepCol, SRCCOPY);
  24.         nDisplayCount++;
  25.         if (nDisplayCount >= nSumBlocks)
  26.             break;
  27.         Sleep(nIntervalTime);
  28.     }
  29.     BitBlt(hdc, 0, 0, nWidth, nHeight, hdcMem, 0, 0, SRCCOPY);
  30. }
复制代码

[bgcolor=#ffffff]完整的程序在[/bgcolor][bgcolor=#ffffff]http://www.hifyl.com/read.php?tid=2763 [/bgcolor]
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

果子博客
扫码关注微信公众号

Archiver|手机版|小黑屋|风叶林

GMT+8, 2026-2-1 04:39 , Processed in 0.232549 second(s), 21 queries .

Powered by 风叶林

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表