常用的GDI操作

1  DC
DC := GetDc(0);                        //桌面
DC := GetDc(窗口句柄)                //窗口客户区
DC := GetWindowDC(窗口句柄))   // 整个窗口,包括非客户区

2 字体
OldFont: HFONT;
OldFont := SelectObject(WinDC, Canvas.Font.Handle);
同样还有Pen, BRUSH
Pen 创建用CreatePen, Brush 用 CreateSolidBrush 创建

3获得WINDOW窗口显示颜色, GetSysColor 里边有很多参数

4 GetSystemMetrics 取WINDOWS窗口 宽度,高度等一系列参数

5 重画非客区 截 Wm_ncpaint 消息, 客户区 WM_Paint 消息

6 坐标转换 ClientToScreen  ScreenToClient,  MapWindowPoints
var
  R: TRect;
begin
  R := Memo1.ClientRect;
  Memo1.Lines.Add(Format('%d %d %d %d', [R.Left, R.Top, R.Right, R.Right]));
  MapWindowPoints(Memo1.Handle, Handle, R, 2);
  Memo1.Lines.Add(Format('%d %d %d %d', [R.Left, R.Top, R.Right, R.Right]));

7
原文地址:https://www.cnblogs.com/chengxin1982/p/1533437.html