一道简单的C#选择题
你正在创建一个背景显示一个图像的自定义控件。你注意到,当控件改变尺寸并重新绘制时,背景图像出现闪烁现象。你为了去移除这种闪烁现象,你应该通过下面那三段代码实现?(每个答案...
你正在创建一个背景显示一个图像的自定义控件。你注意到,当控件改变尺寸并重新绘制时,
背景图像出现闪烁现象。你为了去移除这种闪烁现象,你应该通过下面那三段代码实现?(每
个答案代表解决方案的一部分)
A. this.SetStyle(ontrolStyles.OptimizedDoubleBuffer, true);
B. this.SetStyle(ontrolStyles.AllPaintingInWmPaint, true);
C. this.SetStyle(ontrolStyles.UserPaint, true);
D. this.SetStyle(ontrolStyles.ResizeRedraw, true);
E. this.SetStyle(ontrolStyles.Opaque, true); 展开
背景图像出现闪烁现象。你为了去移除这种闪烁现象,你应该通过下面那三段代码实现?(每
个答案代表解决方案的一部分)
A. this.SetStyle(ontrolStyles.OptimizedDoubleBuffer, true);
B. this.SetStyle(ontrolStyles.AllPaintingInWmPaint, true);
C. this.SetStyle(ontrolStyles.UserPaint, true);
D. this.SetStyle(ontrolStyles.ResizeRedraw, true);
E. this.SetStyle(ontrolStyles.Opaque, true); 展开
5个回答
展开全部
好像是A
B也可以,但题目说是背景上绘的图,因此就可以排除了。
C必要而不充分。
D这个一定要设,但是正是这个造成了闪烁。
E本来也是可以“减少"的, 但是题目里说了图在背景上,因此这个也不对了。
OptimizedDoubleBuffer 如果为 true,则该控件首先在缓冲区中绘制,而不是直接绘制到屏幕上,这样可以减少闪烁。如果将此属性设置为 true,则还应当将 AllPaintingInWmPaint 设置为 true。
AllPaintingInWmPaint 如果为 true,控件将忽略 WM_ERASEBKGND 窗口消息以减少闪烁。仅当 UserPaint 位设置为 true 时,才应当应用该样式。
UserPaint 如果为 true,控件将自行绘制,而不是通过操作系统来绘制。如果为 false,将不会引发 Paint 事件。此样式仅适用于派生自 Control 的类。
ResizeRedraw 如果为 true,则在调整控件大小时重绘控件。
Opaque 如果为 true,则控件被绘制为不透明的,不绘制背景。
B也可以,但题目说是背景上绘的图,因此就可以排除了。
C必要而不充分。
D这个一定要设,但是正是这个造成了闪烁。
E本来也是可以“减少"的, 但是题目里说了图在背景上,因此这个也不对了。
OptimizedDoubleBuffer 如果为 true,则该控件首先在缓冲区中绘制,而不是直接绘制到屏幕上,这样可以减少闪烁。如果将此属性设置为 true,则还应当将 AllPaintingInWmPaint 设置为 true。
AllPaintingInWmPaint 如果为 true,控件将忽略 WM_ERASEBKGND 窗口消息以减少闪烁。仅当 UserPaint 位设置为 true 时,才应当应用该样式。
UserPaint 如果为 true,控件将自行绘制,而不是通过操作系统来绘制。如果为 false,将不会引发 Paint 事件。此样式仅适用于派生自 Control 的类。
ResizeRedraw 如果为 true,则在调整控件大小时重绘控件。
Opaque 如果为 true,则控件被绘制为不透明的,不绘制背景。
展开全部
正确的答案是:A B D
A:OptimizedDoubleBuffer:缓存图像,用来减少闪烁
B:AllPaintingInWmPaint:强行忽略WM_ERASEBKGND消息,减少闪烁
C:UserPaint:控件自行运行Paint事件
D:ResizeRedraw:控件大小改变后,强制刷新(默认不刷新)
E:Opaque:不显示背景
A:OptimizedDoubleBuffer:缓存图像,用来减少闪烁
B:AllPaintingInWmPaint:强行忽略WM_ERASEBKGND消息,减少闪烁
C:UserPaint:控件自行运行Paint事件
D:ResizeRedraw:控件大小改变后,强制刷新(默认不刷新)
E:Opaque:不显示背景
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
A B D
A:OptimizedDoubleBuffer:缓存图像,用来减少闪烁
B:AllPaintingInWmPaint:强行忽略WM_ERASEBKGND消息,减少闪烁
C:UserPaint:控件自行运行Paint事件
D:ResizeRedraw:控件大小改变后,强制刷新(默认不刷新)
E:Opaque:不显示背景
A:OptimizedDoubleBuffer:缓存图像,用来减少闪烁
B:AllPaintingInWmPaint:强行忽略WM_ERASEBKGND消息,减少闪烁
C:UserPaint:控件自行运行Paint事件
D:ResizeRedraw:控件大小改变后,强制刷新(默认不刷新)
E:Opaque:不显示背景
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
答案是 ABD 没错。
2楼的说明,很清楚了
2楼的说明,很清楚了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
A
开启双缓冲,可以防止画面闪烁
开启双缓冲,可以防止画面闪烁
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询