如上所示是遨游浏览器自带的截屏插件,可以看到非选择区域有一层透明遮罩效果,这如何实现呢?
静态截屏最简单的方法就是使用CRectTracker类来实现
在这里我使用的是基于对话框的应用程序,当有截屏请求时,先拷贝屏幕到缓存位图,再最大化显示对话框,将缓存位图按用户的要求在对话框中绘制出来就可以了(要使用双缓冲,要不然拖动的时候就会出现闪烁)
下面的代码用来生成前景遮罩图片以及背景遮罩图片
只显示背景遮罩,无前景遮罩样式
即无前景遮罩也没有背景遮罩样式
关于窗口截屏,我借鉴了一下spy++——当鼠标移动时,使用WindowFromPoint函数找到鼠标下的窗口句柄,然后再在这个窗口周围画一个红色边框,当鼠标离开时在使用InvalidateRect,UpdateWindow,RedrawWindow三个函数更新原选择窗口就行了
截一下这个程序的菜单