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
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