实现类似QQ截图的半透明效果

wutonglin 2009-03-09 05:39:39
我已经实现了类似QQ截图的功能,但是QQ截图旧版能在选择区域标识为半透明,其他区域全透明
新版的效果是全屏半透明,选取区域全透明
半透明效果就像蒙了一层膜
我也想实现这种效果,请问有人做过类似的吗?
提供点关键代码参考一下,谢谢!
注:我使用MFC实现的
...全文
220 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
百晓生-凯 2012-10-29
  • 打赏
  • 举报
回复
请问你实现了么,具体要怎样做啊?
我现在也在做这样一个截图程序,能不能给点关键代码我 邮箱new_destiny@sina。cn
谢谢了
wutonglin 2009-03-09
  • 打赏
  • 举报
回复
谢谢
这样我也试过,但是只能设置为一种状况,全部一样
我希望的效果是没有开始选区域时,全部半透;开始选取后,未选取区域为半透,选取区域为不透
fairchild811 2009-03-09
  • 打赏
  • 举报
回复
m_nAlpha = 255;
//设置透明窗口参数WS_EX_LAYERED 。
SetWindowLong(Handle,GWL_EXSTYLE,
GetWindowLong(Handle,GWL_EXSTYLE)|WS_EX_LAYERED);
SetWindowLong(TrackBarAlpha->Handle,GWL_EXSTYLE,
GetWindowLong(Handle,GWL_EXSTYLE)|WS_EX_LAYERED);
//设置为不透明。
SetAlpha(m_nAlpha);


SetLayeredWindowAttributes(Handle,NULL,nAlpha,LWA_ALPHA);
SetLayeredWindowAttributes(TrackBarAlpha->Handle,NULL,255,LWA_ALPHA);

没在MFC下试.原来Borland下试过
wutonglin 2009-03-09
  • 打赏
  • 举报
回复
不好使,这个好像只能在onPaint中针对CPaintDC有效,而且需要从0,0点开始,我测试过了
还有一个SetLayeredWindowAttributes也测试过了,不能做出那种效果
有人知道最好附上源码,谢谢!
儿大不由爷 2009-03-09
  • 打赏
  • 举报
回复
Alphablend

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧