首页 > 代码库 > 排除不必要的绘制区域,降低绘制量
排除不必要的绘制区域,降低绘制量
procedure DrawBorder(Handle: THandle; ADC: HDC);var R: TRect; Canvas: TCanvas; P: TPoint;begin Canvas := TCanvas.Create; Canvas.Handle := ADC; P := Point(0, 0); Windows.ClientToScreen(Handle, P); Windows.GetWindowRect(Handle, R); P.X := P.X - R.Left; P.Y := P.Y - R.Top; Windows.GetClientRect(Handle, R); /// 排除不需要绘制的区域 /// 优点: 1、不会绘出界外 /// 2、当面积比较大如背景,拖拽缩放时不会出现大面积色块问题 /// ExcludeClipRect(Canvas.Handle, P.X, P.Y, R.Right - R.Left + P.X, R.Bottom - R.Top + P.Y); Windows.GetWindowRect(Handle, R); OffsetRect(R, -R.Left, -R.Top); /// 绘制背景 ///PaintBackground(Canvas, R); /// 清除剪切区域 SelectClipRgn(Canvas.Handle, 0); Canvas.Handle := 0; Canvas.Free;end;
排除不必要的绘制区域,降低绘制量
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。