如何使用屏幕截屏做程序背景
来源:互联网 发布:mac怎么卸载插件 编辑:程序博客网 时间:2024/06/15 11:51
最近要做一个程序,是在别人的程序基础上,加一个外壳来操作,我首先就是想到了windows的那个经典屏保,气泡,这个程序就是利用当前截屏做背景,而后就开始在网上查阅各种资料。找到两个方法可以获取当前截屏
1,在程序里发送VK_SNAPSHOT按键,而后OpenClipboard();而后GetClipboardData(CF_BITMAP),这个函数获取的是DDB图片,而后把这个DDB图片转成DIB,而后因为我的程序程序使用OpenGL做图形,所以因为我学的知识少,只能把它转成DIB,而后保存,而后再用LoadImage(),把保存的那个bmp导入,而后在用GetObject(HBITMAP,sizeof(bm),&bm);来获取DIB的数据,而后生成纹理glTexImage2D()。实际我感觉这样肯定不是最好的方法,最好肯定是可以直接使用DDB来做纹理,但暂时只用这个吧
2,第二种方法获取截屏是使用GetDC(NULL),这个函数,以NULL来做参数调用GetDC就可以获取当前屏幕截屏,而后创建一个Compatible的内存DC和一个compatible的bitmap,把bitmap载入到memDC,而后使用BitBlt()把全屏DC的位图数据信息传到memDC里面(这块使用一个memDC是因为我想保存调出我的程序前的那个原程序的界面,而窗口DC是不断更新的,所以没法暂时保留运行画面),而后保存memDC里面的位图信息,和上面那个方法一样,而后获取,而后生成纹理
这里面第二个方法,在给memDC创建位图时,位图大小要是GetSystemMetrics(SM_CXSCREEN),GetSystemMetrics(SM_CYSCREEN),全屏大小,这样就可以把整个屏幕做背景
- 如何使用屏幕截屏做程序背景
- 如何美化android程序:自定义ListView背景
- 如何美化android程序:自定义ListView背景
- 如何调整系统屏幕亮度和程序内部屏幕亮度
- 如何不用程序框架来绘制屏幕
- 如何不用程序框架来绘制屏幕
- 如何屏蔽控制台程序的黑色屏幕
- 微信小程序如何获取屏幕宽度
- 使用screen将程序放到背景运行
- 如何使用图片做DLG背景
- 如何使用css实现背景颜色渐变
- 用IEC定时器如何使用多重背景
- 程序: 使用 API 开始屏幕保护
- 程序:使用API开始屏幕保护
- 使用Qt 开发一个屏幕录像程序
- 使用Qt 开发一个屏幕录像程序
- 如何设置Windows扩展屏幕,扩展屏幕和主屏有何区别,如何优化使用扩展屏幕?
- 如何设置Windows扩展屏幕,扩展屏幕和主屏有何区别,如何优化使用扩展屏幕?
- 子窗口ajax异常
- Linux 查看文件 cat,tac,more,less,head,tail 用法
- 如何在一个layout里注销掉一个广播监听器
- NSString 对字符串的操作
- QT源码分析和下载地址
- 如何使用屏幕截屏做程序背景
- 输入一个字符判断它是否为大写字母,如果是把它变为小写字母,如果是小写字母则不变
- Oracle创建和管理表
- linux修改用户主目录的方法
- 第九周上级任务项目5-二维数组类(减法的部分有错误,待解决)
- JMS与Spring的整合实例(基于Apache ActiveMQ)JMS的介绍
- NSUserDefaults 用户轻量级的数据持久化 (留用)
- java 一个线程执行加,一个线程执行减
- FMDB简介以及使用增删改查