就是我用透明PNG图片(一个小人,背景是透明的) 做了个自绘按钮..
当给他父窗体加上WS_CLIPCHILDREN属性后 主对话框拉动大小 它会有轻微闪烁
如果去掉WS_CLIPCHILDREN属性 那么强烈闪烁
我画图用的是双缓冲 选择不擦除背景 DeferWindowPos移动窗体 也不行
我看QQ的拖动大小问题 闪烁问题已经解决了 我想这问题 还是有方法解决的
能不能请高手 再次帮下忙?为了能看的清晰点 我截图给大家看看1。正常时候应该是下图这样的,背景是纯色的 比较好办 只要把 图片控件的背景也填充成这颜色就可以了
但是 如果背景是图片 或者是渐变色的话 就不行了
这小人按钮 是背景透明的png图片做的 正常情况下应该如下图
2。如果给他父窗口加上WS_CLIPCHILDREN属性 那么它背景部分 父窗口不会刷新 就变成这样了
3。如果去掉WS_CLIPCHILDREN属性 那么就是上面的情况了 在拖动父窗体大小的时候 会闪烁
特别轻微的闪烁 一个一个小细条的闪烁 不是整个图片都闪 只是图片上随机出现几个细条闪 特快
虽然很快 很小 但是很影响视觉
因为太快了 无法截图 大家可以想象下 我用了 不少的方法 都没有弄好 集思广益 如果有人有好的方法 在这里表示感激不尽随便发言 也许你的一句话 就能打开我的思路了呢.....1.双缓冲
2.禁止刷背景
3.DeferWindowPos代替移动和调大小
.
.
.
.
等 都不行 我已经绞尽脑汁了 还是不行 请高手指点迷津吧
当给他父窗体加上WS_CLIPCHILDREN属性后 主对话框拉动大小 它会有轻微闪烁
如果去掉WS_CLIPCHILDREN属性 那么强烈闪烁
我画图用的是双缓冲 选择不擦除背景 DeferWindowPos移动窗体 也不行
我看QQ的拖动大小问题 闪烁问题已经解决了 我想这问题 还是有方法解决的
能不能请高手 再次帮下忙?为了能看的清晰点 我截图给大家看看1。正常时候应该是下图这样的,背景是纯色的 比较好办 只要把 图片控件的背景也填充成这颜色就可以了
但是 如果背景是图片 或者是渐变色的话 就不行了
这小人按钮 是背景透明的png图片做的 正常情况下应该如下图
2。如果给他父窗口加上WS_CLIPCHILDREN属性 那么它背景部分 父窗口不会刷新 就变成这样了
3。如果去掉WS_CLIPCHILDREN属性 那么就是上面的情况了 在拖动父窗体大小的时候 会闪烁
特别轻微的闪烁 一个一个小细条的闪烁 不是整个图片都闪 只是图片上随机出现几个细条闪 特快
虽然很快 很小 但是很影响视觉
因为太快了 无法截图 大家可以想象下 我用了 不少的方法 都没有弄好 集思广益 如果有人有好的方法 在这里表示感激不尽随便发言 也许你的一句话 就能打开我的思路了呢.....1.双缓冲
2.禁止刷背景
3.DeferWindowPos代替移动和调大小
.
.
.
.
等 都不行 我已经绞尽脑汁了 还是不行 请高手指点迷津吧
解决方案 »
- 解决GDI+Bitmap对图片文件的独占
- 16位的屏幕显示图像问题
- 关于串行化,建立文件时路径变化的问题。
- RC2文件原理
- CString字符串分解的问题。
- 高手帮忙:在一个仅有3个edit的对话框上用GetPixel取不到颜色。
- 如何根据URL来关闭IE窗口?
- 怎么样用一个无模式对话框中的编辑框来实时显示主程序中的变量?
- 在 oledb 中怎麼樣才能把 MSsql 類型綁定正確 ? 按書上的做類型綁定得不到正確數據,請大家幫幫忙指點指點,謝謝!!!
- 用VC6,如何才能写出支持win下,CPU多个核心同时工作的程序呢?
- 【还是关于写文件的问题,大家给看看】
- vs2010两个程序使用ODBC操作同一个SQLSERVER数据库遇到的问题
恩 测试工程师挺麻烦的... 用到了gdi++库 而且还是3层的窗口
我也知道WS_CLIPCHILDREN属性的作用 加了之后 一般的控件不会闪烁了
但是遇到透明控件 就没有办法了 父窗口不给刷新 子窗口就没背景...如果我在子窗口或者基类中做处理 加背景
那么也就没有办法能够使子控件显示父窗口的背景了 也就是无法达到透明效果 因为父窗口那区域都没有绘制 算了 我看是常规方法解决不了了 我试试子窗口 重载ondraw函数 画图 画控件 会不会好点
实在不行 我就用alpha 做一个透明的不规则的子窗口 看看.....我就不信解决不了这问题多谢 兔子党的几位的帮助 谢谢!.....
要实现透明:截父窗体的那块背景(即:子窗体相对于父窗体的那块区域),会截到屏幕DC上去,
因此:使用的WS_CLIPCHILDREN这个属性后,如果子窗体的图片没有完全覆盖自身的区域,那会有屏幕DC上的
残余。 解决方法:1采用定位区域的方法,这种方法最好,从绘制的角度看,绘制的也最好,你用SPY++看QQ的实现,。
2:去掉父窗体的WS_CLIPCHILDREN这个属性,截取父窗体的DC,然后在绘制时,先覆盖父窗体对应的
位图,再在上面绘制
3:防止闪烁的方法。大致如下4步