更改逻辑字体
![](https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif)
var
I: Integer;
FLogFont: tagLogFontA; //逻辑字体--结构体类型
hTempFont, hPrevFont: HFONT; //字体句柄
hTempDC: HDC; //设备描述表或图形设备句柄
TempString,vStr: string; //输出的文字
begin
FLogFont.lfHeight := 20; //字高
FLogFont.lfWidth := 10; //字宽
FLogFont.lfWeight := 5; //字体笔划粗细程度
FLogFont.lfUnderline := 1; //没有下划线
FLogFont.lfStrikeOut := 0; //没有删除线
FLogFont.lfItalic := 0; //斜体效果否
FLogFont.lfCharSet := GB2312_CHARSET; //字符集
FLogfont.lfEscapement := 100;//倾斜度
FLogFont.lfOrientation := 100; //方向与倾斜度取值同
FLogFont.lfFaceName := '黑体'; //字体名称
//创建逻辑字体
hTempFont := CreateFontIndirect(FLogFont);
TempString := 'SDFGSD4F4GS5DF';
//取得窗口的设备句柄
//hTempDC := GetDC(.Handle);
hTempDC := Image1.Canvas.Handle;
//取出窗口设备的当前字体,并替换为新字体
hPrevFont := SelectObject(hTempDC, hTempFont);
//设置设备窗口的文字色彩
SetTextColor(hTempDc, clBlack);
SetBkMode(hTempDc, TRANSPARENT); //设置字体输出为背景透明
//TextOut(hTempDC,0,10,PChar(TempString),10);
//输出文字
for i := 1 to Length(TempString)-1 do
begin
vStr := TempString[i];
TextOut(hTempDc, 0+i*10, 0, PChar(vStr), 1);
end;
// Canvas.MoveTo(0,100);
// Canvas.LineTo(i*30,100);
// Canvas.MoveTo(0,120);
// Canvas.LineTo(i*30,120);
//恢复原有的字体
SelectObject(hTempDc, hPrevFont);
//删除逻辑字体
DeleteObject(hTempFont);
//释放设备接口
ReleaseDC(Handle, hTempDC);