排除不必要的绘制区域,降低绘制量

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;
时间: 2024-10-12 21:50:39

排除不必要的绘制区域,降低绘制量的相关文章

Padding与绘制区域--android:clipToPadding和android:clipChildren

设计一个界面,整个界面包含一个listview,但是listview不是全部充满屏幕,如下: 可能会这样设计布局 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:l

background-clip指定背景绘制区域

语法:background-clip: 值 可取值:(1)border-box 背景绘制,背景从边缘处展开,无剪切 (2)padding-box 背景绘制,背景从内边距开始展开 ,剪切掉边框 (3)content-box 背景绘制,背景从实际内容处展开 ,剪切掉内边距和边框 具体例子与效果图: 第一种:background-clip:border-box: <div class="div1"> <p>border-box</p> <p>b

unity绘制线和绘制面

绘制线条代码,其实就是指定至少两个点,然后赋予贴图即可,不废话,上代码: using UnityEngine; using System.Collections; public class LineT_1 : MonoBehaviour { private LineRenderer lineRender; private int lineLenght=4; private Vector3 v0 =new Vector3(1.0f,0f,0f); private Vector3 v1= new V

Bezier曲线绘制 B样条绘制

/*输入点的个数是可以手动改动的,此程序中输入点的最大值设置为. *同时,程序实现了键盘的交互,用来控制程序运行过程中的退出.重画等 */ #include<GL/glut.h> #include<stdlib.h> int W,H; //屏幕的大小 int N =-1; //贝赛尔曲线的幂次 GLfloat Bfunc[15]={0.0}; //Bernstein多项式的值的数组 GLfloat point[15][2]={0.0}; //存储控制点的坐标 void Init()

qt中窗口绘制——图片的绘制

在qt 中,QPixmap 用于表示一张图片,支持png,jpg格式的加载. QPixmap pm("c:/test.png"); 或者 QPixmap pm; pm.load("c:/test/png"); QT中图片的路径分为两种: (1)文件系统中的图片:使用绝对路径或者相对路径. (2)资源中的文件:以冒号开头例如:/Test/source/logo.jpg 绘制的参数: (1)源矩形 可以绘制图形的全部,也可以绘制其中的一部分. QRect source(

[ html drawImage 绘制图片 ] canvas绘制图片 drawImage 属性实例演示之二

1 <!DOCTYPE html> 2 <html lang='zh-cn'> 3 <head> 4 <title>Insert you title</title> 5 <meta name='description' content='this is my page'> 6 <meta name='keywords' content='keyword1,keyword2,keyword3'> 7 <meta htt

[ html createPattern 绘制背景平铺方式 ] canvas绘制图片 createPattern 绘制背景平铺方式 属性实例

1 <!DOCTYPE html> 2 <html lang='zh-cn'> 3 <head> 4 <title>Insert you title</title> 5 <meta name='description' content='this is my page'> 6 <meta name='keywords' content='keyword1,keyword2,keyword3'> 7 <meta htt

[ html drawImage 绘制图片 ] canvas绘制图片 drawImage 属性实例演示

<!DOCTYPE html> <html lang='zh-cn'> <head> <title>Insert you title</title> <meta name='description' content='this is my page'> <meta name='keywords' content='keyword1,keyword2,keyword3'> <meta http-equiv="

Struts2之通配符映射(降低配置量)

通过在配置文件中使用*取代具体的字符下面举例说明 1 StudentAction和TeacherAction package org.action; public class StudentAction { private String username; private String password; public String getUsername() { return username; } public void setUsername(String username) { this