逻辑字体"/>
更改逻辑字体
varI: 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);
转载于:.html
更多推荐
更改逻辑字体
发布评论