请问DC剪裁区域对绘图速度有何影响

HisinWang 2011-07-03 10:30:09
《Windows程序设计》中第五章示例程序CLOVR利用DC的剪裁区域绘制较复杂的图形。
其中关于WM_PAINT消息的处理如下:

case WM_PAINT:
hdc = BeginPaint (hwnd, &ps) ;

SetViewportOrgEx (hdc, cxClient / 2, cyClient / 2, NULL);
SelectClipRgn (hdc, hRgnClip);

fRadius = _hypot (cxClient / 2.0, cyClient / 2.0);

for (fAngle = 0.0; fAngle < TWO_PI; fAngle += TWO_PI / 360)
{
MoveToEx (hdc, 0, 0, NULL);
LineTo (hdc, (int) ( fRadius * cos (fAngle) + 0.5),
(int) (-fRadius * sin (fAngle) + 0.5));
}
EndPaint (hwnd, &ps) ;
return 0 ;

红色字体部分就是设置剪裁区域。程序运行后当改变窗体大小发生窗口重绘时,能看到明显的图形生产过程。
当注释掉设置剪裁区域的代码,则获取的DC的剪裁区域为空,也即在整个客户区绘图时,程序运行后当改变窗体大小发生重绘时,则明显感觉图形一下子就绘制完毕。
那是不是可以据此推断设置了剪裁区域即DC的剪裁区域不为空是会降低GDI的绘图速度的。
...全文
82 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
HisinWang 2011-07-22
  • 打赏
  • 举报
回复
没人回答啊

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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