运行结果如下图:

原理:

第一步 禁止更新屏幕
第二步 用GetDCEx获取屏幕HDC,把他放进位图
第三步 算出屏幕分辨率,把截图的结果大小/10重新显示
第四步 把获取的图形显示并随机分配位置

第五步 重新开始,进行32767次循环!

#include <windows.h>#define NUM 32767LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,PSTR szCmdLine, int iCmdShow)
{static int iKeep[NUM][4];HDC        hdcScr, hdcMem;int        cx, cy;HBITMAP    hBitmap;HWND       hwnd;int        i, j, x1, y1, x2, y2;if (LockWindowUpdate(hwnd = GetDesktopWindow())){hdcScr = GetDCEx(hwnd, NULL, DCX_CACHE | DCX_LOCKWINDOWUPDATE);hdcMem = CreateCompatibleDC(hdcScr);cx = GetSystemMetrics(SM_CXSCREEN) / 10;cy = GetSystemMetrics(SM_CYSCREEN) / 10;hBitmap = CreateCompatibleBitmap(hdcScr, cx, cy);SelectObject(hdcMem, hBitmap);srand((int)GetCurrentTime());for (i = 0; i < 2; i++)for (j = 0; j < NUM; j++){LockWindowUpdate(hwnd = GetDesktopWindow());if (i == 0){iKeep[j][0] = x1 = cx * (rand() % 10);iKeep[j][1] = y1 = cy * (rand() % 10);iKeep[j][2] = x2 = cx * (rand() % 10);iKeep[j][3] = y2 = cy * (rand() % 10);}else{x1 = iKeep[NUM - 1 - j][0];y1 = iKeep[NUM - 1 - j][1];x2 = iKeep[NUM - 1 - j][2];y2 = iKeep[NUM - 1 - j][3];}BitBlt(hdcMem, 0, 0, cx, cy, hdcScr, x1, y1, SRCCOPY);BitBlt(hdcScr, x1, y1, cx, cy, hdcScr, x2, y2, SRCCOPY);BitBlt(hdcScr, x2, y2, cx, cy, hdcMem, 0, 0, SRCCOPY);}DeleteDC(hdcMem);ReleaseDC(hwnd, hdcScr);DeleteObject(hBitmap);}return 0;
}

C/C++屏幕恶搞程序相关推荐

  1. java的小恶搞程序

    下面是个小恶搞程序哦 import java.awt.AWTException;import java.awt.event.InputEvent;public class MouseTest {pub ...

  2. python恶搞程序-愚人节恶搞程序源码【两种语言】

    Python: print("--------------------------") print("[愚人节专用恶搞程序]") print("[By ...

  3. python恶搞-python—做一个恶搞程序

    python-做一个恶搞程序 very easy print("You can't win this game") #你不可能赢这个游戏 n = int(input("B ...

  4. 汇编实验:屏幕窗口程序(代码有较为详细的注释)

    实验3.4 屏幕窗口程序 1.题目:屏幕窗口程序 2.实验要求: 在屏幕上开出三个窗口,它们的行列坐标按照教材要求.光标首先定位在右窗口最下面一行的行首(15,50),如从键盘输入字符,则显示在右窗口 ...

  5. python整人程序_python—做一个恶搞程序

    python-做一个恶搞程序 very easy print("You can't win this game") #你不可能赢这个游戏 n = int(input("B ...

  6. html文件设置成mac屏保,Mac怎么设置屏幕保护?如何设置Mac屏幕保护程序?

    Mac电脑如何设置屏幕保护程序?屏保是我们显示个性的重要途径,也是保护我们的电脑安全的一个重要方法.MAC用户想要修改自己的屏保该怎么办呢?今天PC6小编就教大家如何在Mac系统下设置桌面背景以及屏幕 ...

  7. 询问HTG:白噪声屏幕保护程序,有效的文件命名以及从密码泄露中恢复

    Once a week we share three of the questions we've answered from the Ask HTG inbox with the greater r ...

  8. windows xp 屏幕保护程序_小礼物:3D Windows XP 屏幕保护程序

    航通社旗下公众号"56K小猫"(微信:modem56k),原创文章未经授权禁止转载.航通社微信:lifeissohappy 微博:@航通社 生 / 活 / 小 / 妙 / 招 从昨 ...

  9. 个性屏幕保护程序_Mac高清鸟瞰屏幕保护程序,酷毙了

    最新的Aerial for Mac配备了一个漂亮的屏幕保护程序,由在旧金山,纽约,伦敦,中国和许多其他地方录制的一系列航拍电影组成.如果您想在Mac上使用这些剪辑,现在有一种简单的方法可以实现. Ae ...

最新文章

  1. iOS 最新版 CocoaPods 的安装流程
  2. Android旋转切换条目,Android:当我添加动态新的ListView条目时,ListView中的旋转器会丢失它们的值...
  3. Web开发框架–第2部分:Play Framework 2.0
  4. npm dev run 报错
  5. leetcode力扣36.有效的数独
  6. [CF1107E]Vasya and Binary String【区间DP】
  7. LTE学习:同步信号
  8. 剑指offer面试题63. 股票的最大利润(动态规划)
  9. cocos2d-x—schedule介绍
  10. 【C语言视频教程完整版】从入门到进阶,适合C语言初学者计算机考研党考计算机二级大一大二学生学习观看~~~
  11. 文件描述符表,打开文件表,索引节点表
  12. MySQL Clone插件
  13. 微信公众平台自动回复详解
  14. oracle 11g dul,【学习笔记】Oracle DUL 11 兼容Oracle 12C数据库的DUL工具最新版本
  15. 豆瓣电影数据可视化大屏
  16. 如何删除 顽固文件/文件夹
  17. 扬帆牧哲:跨境电商还有未来吗?
  18. 雷军武大演讲:永是珞珈一少年 留下人生最重要回忆
  19. 初阶指针(纯干货!!!)
  20. 3.licheepi wifi

热门文章

  1. 新手编程:程序员 5 种编程入门方法,快速学会一门编程语言!
  2. 『飞秋』关于ASP.NET MVC+Repository+Service架构的一些思考
  3. 09-03-06 FreeEIM 姗姗来迟
  4. web前端已经不行了?千万不要信
  5. 经典面试题(15):以下代码将输出的结果是什么?
  6. arcgis 字段计算器 条件赋值_ArcGIS中属性表的常用操作汇总
  7. java手工注入bean_java相关:Spring中如何动态注入Bean实例教程
  8. vba代码编程800例_VBA编程常用过程代码实例2630
  9. OCR识别之图像预处理
  10. NAR:脑疾病研究的“金牌助手”:BrainBase