当前位置: 首页>>代码示例>>C++>>正文


C++ SystemDraw::RectPath方法代码示例

本文整理汇总了C++中SystemDraw::RectPath方法的典型用法代码示例。如果您正苦于以下问题:C++ SystemDraw::RectPath方法的具体用法?C++ SystemDraw::RectPath怎么用?C++ SystemDraw::RectPath使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在SystemDraw的用法示例。


在下文中一共展示了SystemDraw::RectPath方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: DoPaint

void Ctrl::DoPaint()
{
	LLOG("@ DoPaint");
	if(!PaintLock) {
		bool scroll = false;
		if(desktop)
			desktop->SyncScroll();
		for(int i = 0; i < topctrl.GetCount(); i++)
			topctrl[i]->SyncScroll();
		if((invalid.GetCount() || scroll) && desktop) {
			RemoveCursor();
			RemoveCaret();
			for(int phase = 0; phase < 2; phase++) {
				LLOG("DoPaint invalid phase " << phase);
				LDUMPC(invalid);
				SystemDraw painter;
				painter.Begin();
				for(int i = 0; i < invalid.GetCount(); i++) {
					painter.RectPath(invalid[i]);
					AddUpdate(invalid[i]);
				}
				painter.Painter::Clip();
				for(int i = topctrl.GetCount() - 1; i >= 0; i--) {
					Rect r = topctrl[i]->GetRect();
					Rect ri = GetClipBound(invalid, r);
					if(!IsNull(ri)) {
						painter.Clipoff(r);
						topctrl[i]->UpdateArea(painter, ri - r.TopLeft());
						painter.End();
						Subtract(invalid, r);
						painter.ExcludeClip(r);
					}
				}
				Rect ri = GetClipBound(invalid, framebuffer.GetSize());
				if(!IsNull(ri))
					desktop->UpdateArea(painter, ri);
			}
		}
	}
	DoUpdate();
}
开发者ID:AbdelghaniDr,项目名称:mirror,代码行数:41,代码来源:Wnd.cpp


注:本文中的SystemDraw::RectPath方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。