C/C++屏幕恶搞程序
运行结果如下图:
原理:
第一步 禁止更新屏幕
第二步 用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++屏幕恶搞程序相关推荐
- java的小恶搞程序
下面是个小恶搞程序哦 import java.awt.AWTException;import java.awt.event.InputEvent;public class MouseTest {pub ...
- python恶搞程序-愚人节恶搞程序源码【两种语言】
Python: print("--------------------------") print("[愚人节专用恶搞程序]") print("[By ...
- python恶搞-python—做一个恶搞程序
python-做一个恶搞程序 very easy print("You can't win this game") #你不可能赢这个游戏 n = int(input("B ...
- 汇编实验:屏幕窗口程序(代码有较为详细的注释)
实验3.4 屏幕窗口程序 1.题目:屏幕窗口程序 2.实验要求: 在屏幕上开出三个窗口,它们的行列坐标按照教材要求.光标首先定位在右窗口最下面一行的行首(15,50),如从键盘输入字符,则显示在右窗口 ...
- python整人程序_python—做一个恶搞程序
python-做一个恶搞程序 very easy print("You can't win this game") #你不可能赢这个游戏 n = int(input("B ...
- html文件设置成mac屏保,Mac怎么设置屏幕保护?如何设置Mac屏幕保护程序?
Mac电脑如何设置屏幕保护程序?屏保是我们显示个性的重要途径,也是保护我们的电脑安全的一个重要方法.MAC用户想要修改自己的屏保该怎么办呢?今天PC6小编就教大家如何在Mac系统下设置桌面背景以及屏幕 ...
- 询问HTG:白噪声屏幕保护程序,有效的文件命名以及从密码泄露中恢复
Once a week we share three of the questions we've answered from the Ask HTG inbox with the greater r ...
- windows xp 屏幕保护程序_小礼物:3D Windows XP 屏幕保护程序
航通社旗下公众号"56K小猫"(微信:modem56k),原创文章未经授权禁止转载.航通社微信:lifeissohappy 微博:@航通社 生 / 活 / 小 / 妙 / 招 从昨 ...
- 个性屏幕保护程序_Mac高清鸟瞰屏幕保护程序,酷毙了
最新的Aerial for Mac配备了一个漂亮的屏幕保护程序,由在旧金山,纽约,伦敦,中国和许多其他地方录制的一系列航拍电影组成.如果您想在Mac上使用这些剪辑,现在有一种简单的方法可以实现. Ae ...
最新文章
- iOS 最新版 CocoaPods 的安装流程
- Android旋转切换条目,Android:当我添加动态新的ListView条目时,ListView中的旋转器会丢失它们的值...
- Web开发框架–第2部分:Play Framework 2.0
- npm dev run 报错
- leetcode力扣36.有效的数独
- [CF1107E]Vasya and Binary String【区间DP】
- LTE学习:同步信号
- 剑指offer面试题63. 股票的最大利润(动态规划)
- cocos2d-x—schedule介绍
- 【C语言视频教程完整版】从入门到进阶,适合C语言初学者计算机考研党考计算机二级大一大二学生学习观看~~~
- 文件描述符表,打开文件表,索引节点表
- MySQL Clone插件
- 微信公众平台自动回复详解
- oracle 11g dul,【学习笔记】Oracle DUL 11 兼容Oracle 12C数据库的DUL工具最新版本
- 豆瓣电影数据可视化大屏
- 如何删除 顽固文件/文件夹
- 扬帆牧哲:跨境电商还有未来吗?
- 雷军武大演讲:永是珞珈一少年 留下人生最重要回忆
- 初阶指针(纯干货!!!)
- 3.licheepi wifi
热门文章
- 新手编程:程序员 5 种编程入门方法,快速学会一门编程语言!
- 『飞秋』关于ASP.NET MVC+Repository+Service架构的一些思考
- 09-03-06 FreeEIM 姗姗来迟
- web前端已经不行了?千万不要信
- 经典面试题(15):以下代码将输出的结果是什么?
- arcgis 字段计算器 条件赋值_ArcGIS中属性表的常用操作汇总
- java手工注入bean_java相关:Spring中如何动态注入Bean实例教程
- vba代码编程800例_VBA编程常用过程代码实例2630
- OCR识别之图像预处理
- NAR:脑疾病研究的“金牌助手”:BrainBase