更改逻辑字体

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

 

posted @ 2010-03-12 16:35  一 点  阅读(174)  评论(0编辑  收藏  举报