窗体闪烁问题

dongshanyu 2008-10-17 05:47:50
窗体上的背景是动态绘制的(截屏作为背景),移动该窗体是感觉明显的闪烁,网上查了不少资料,尝试了下面2种办法:
1.双缓冲(DoubleBuffered、BufferedGraphicsContext)
2.用画布做过渡
但均无效果,不知道是否还有其他更好的方法。
...全文
369 32 打赏 收藏 转发到动态 举报
写回复
用AI写文章
32 条回复
切换为时间正序
请发表友善的回复…
发表回复
dongshanyu 2008-10-24
  • 打赏
  • 举报
回复
To 31楼
是我误会了。没用过DirectX或者OpenGL。
查了一下DirectX开发,好像用VC++居多,楼上能否推荐一些用C#开发的资料。
fengyecsdn 2008-10-24
  • 打赏
  • 举报
回复
To 26楼
>>动作的时候让绘制暂停。 等没事了在恢复
fengyecsdn,我通过观察一下,拖动窗体时,窗体的OnPaint事件并没触发。

老大 DX绘制和 窗体的 ONPAINT不是一个概念。
DX是直接操作显存显示区域的。
dongshanyu 2008-10-22
  • 打赏
  • 举报
回复
自己顶最后一下,再等一天,若仍无方法也只好结贴了。
wenyegood 2008-10-21
  • 打赏
  • 举报
回复
丛晓男 2008-10-21
  • 打赏
  • 举报
回复
我画了一个动态分级的图,用了那两个设置就不那么闪烁了。不知道你画啥东西
dongshanyu 2008-10-21
  • 打赏
  • 举报
回复
up
wheeler 2008-10-21
  • 打赏
  • 举报
回复
To 28楼

拖动窗体时是不触发窗体的OnPaint事件的,只有窗体被 遮盖后才重绘
dongshanyu 2008-10-21
  • 打赏
  • 举报
回复
To 25楼
使用的API,会使得窗体和其上的控件皆透明。

To 26楼
>>动作的时候让绘制暂停。 等没事了在恢复
fengyecsdn,我通过观察一下,拖动窗体时,窗体的OnPaint事件并没触发。
szzwl 2008-10-21
  • 打赏
  • 举报
回复
关注中
fengyecsdn 2008-10-21
  • 打赏
  • 举报
回复
动作的时候让绘制暂停。 等没事了在恢复
colorslife 2008-10-21
  • 打赏
  • 举报
回复
用API可以设置窗体透明的,兄弟,你google一下
wheeler 2008-10-21
  • 打赏
  • 举报
回复
顶2楼的

这种应用应该使用DirectX或者OpenGL
dongshanyu 2008-10-21
  • 打赏
  • 举报
回复
To 12楼
没画什么东西,就是拷个屏用,作为当前窗体的背景。
xupeihuagudulei 2008-10-20
  • 打赏
  • 举报
回复
mark mark
dongshanyu 2008-10-20
  • 打赏
  • 举报
回复
UP
falx2004 2008-10-20
  • 打赏
  • 举报
回复
mark
dongshanyu 2008-10-20
  • 打赏
  • 举报
回复
To 8楼
为达到透明效果,但又不能镂空,故采用此法。
dongshanyu 2008-10-20
  • 打赏
  • 举报
回复
To 18楼
是的,开始时是做成镂空的,但不符合要求,没办法故采用此招。
Red_angelX 2008-10-20
  • 打赏
  • 举报
回复
拷贝背景做前景来做假透明?
cja03 2008-10-20
  • 打赏
  • 举报
回复
这样子窗体一定会闪的,就好的办法就是透明背景:
http://download.csdn.net/source/698904
加载更多回复(12)

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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