要做一个类似于QQ截屏的功能,截取的部分都已经做完,但是出现一个问题
在按下某一个按钮之后,本窗口Hide,然后,我需要先截取全部的桌面
问题是,Hide之后,背景的刷新不够快,经常跟不上程序流上 下一个截取的动作60%左右情况截取到的东西能看到原窗口还没Hide
30%能看到原窗口擦除之后背后窗口的更新到一半的场景
10%能看到背后窗口已经全部画完成简单的用Application.ProcessMessage,无用
试着用InvalidateRgn更新整个桌面,无用
Sleep(50),很有效,但这方法也太不好看了,若是在性能不同的机器上运行,很可能还是会有问题
应该如何实现呢?
在按下某一个按钮之后,本窗口Hide,然后,我需要先截取全部的桌面
问题是,Hide之后,背景的刷新不够快,经常跟不上程序流上 下一个截取的动作60%左右情况截取到的东西能看到原窗口还没Hide
30%能看到原窗口擦除之后背后窗口的更新到一半的场景
10%能看到背后窗口已经全部画完成简单的用Application.ProcessMessage,无用
试着用InvalidateRgn更新整个桌面,无用
Sleep(50),很有效,但这方法也太不好看了,若是在性能不同的机器上运行,很可能还是会有问题
应该如何实现呢?
解决方案 »
- 求 这个 数列 第N项 的值~~!!!!急急急!!!谢谢了!
- 如何捕获以太网数据包 ?
- 有个问题就高手指教,有关setLength函数
- 当我用Query和UpdateSQL更新表格后,Dbgrid总不是实时更新的,我用query.Close再Query.open的方法好么?
- 有一固定格式文件!我想读取他的资料! 帮忙!
- 今天又长个犄角,散分ing!
- 请教(有点急):listview的checkboxes属性设为true,我想让listview符合条件的行不可选中,应该如何设置?
- 不知道谁用MIDAS组件做过3层构架的系统?最好有具体的列子 有价值的回答都有分!
- COM+的问题
- 一个类型转换问题,特急!!!!!
- 关于GROUPBAR组件的问题
- 请问 fwjindream(梦中飞) 在不在啊 有急事找哈 ~~~~~~~~~~~~~在线等待哈
和用Sleep还是有一样的问题
你试试
这些可以不用再提的了
如果我会采用这个方法,那么我为什么又要来发帖呢?
我开帖就讲了这个方法的问题了
不同的机器性能,不同的背后所要重绘的Rect数目,都会有相差甚远的时间需要,全部取最大是不可行的方法
如果还不行则把截屏代码放到单独函数中
然后在OnHide的地方Post自己一个自定义消息,在这个消息里调用截屏函数
测试结果可以百分之百的截到还没有Hide的Self窗体
OnHide的效果是在Hide前一刻发生的自定义消息的效果同样不起作用
因为在OnHide里面加自定义消息,估计消息队列里顺序是这样的
Hide消息
WM_USER
背景刷新消息
就是让给定的HANDLE在你给定的HDC上画
消息名称忘了,你找一下!