Windows程序设计 读书笔记 文本与字体

一、字体类型:

  1,GDI字体。储存在硬盘文件里。

    1.1 点阵字体。又称位图字体。以位图象素图案的形式存储。不可随意缩放,优点是显示快,可读性好。每个点阵字体不超过6种大小。

    例:System,FixedSys,Terminal,Courier,MS Serif,MS Sans Serif,Small Fonts

    1.2 笔画字体。优点是随意缩放,缺点显示慢,小字体可读性差。适合绘图仪。

    例:Modern,Roman,Script

    1.3 TrueType字体,可以无极缩放,可以用于视频显示和打印机。

    例:Courier New ...,Times New Roman ...,Arial ...,Symol

  2,设备字体。输出设备所固有的。

二、字符输出函数。

  SetTextAlign( nFlags)////注意: TA_UPDATECP指示TextOut中设置的x,y都无效,而是取前一次更改后的坐标。

  TextOut

  TabbedTextOut

  ExtTextOut

  DrawText

  DrawTextEx

  设备描述表:

    SetTextColor

    SetBkMode

    SetBkColor

    获取用户设置的系统颜色GetSysColor(COLOR_WINDOW...)

CDC::SetTextCharacterExtra//字符间距

    SelectObject(hdc,GetStockObject(SYSTEM_FONT))

  一些函数:

  CreateFont或CreateFontIndirect //创建字体  

  GetTextFace //获取字体名

  BOOL GetTextMetrics( HDC hdc LPTEXTMETRIC lptm ); //获取当前字体信息

  BOOL GetTextExtentPoint32( HDC hdc, LPCTSTR lpString, int cbStringLPSIZE lpSize );//获取字符串尺寸。

  SetTextJustification (hdc,prc->right - prc->left - size.cx,cSpaceChars) ;//两段对其的时候用,接下来的cSpaceChars个空格要多平分(prc->right - prc->left - size.cx)的空间,一行结束后,要用SetTextJustification (hdc, 0, 0) ;消除上行产生的差错。

三、LOGFONT结构体,成员说明:http://baike.baidu.com/view/2421591.html?fromTaglist

  通过LOGFONT可以设置很多字体信息。包括字体旋转。比如 lf.lfOrientation = 300 ; 转30度。

    GetObject (hFont, sizeof (LOGFONT), &lf) ;//获取LOGFONT

    hFont = CreateFontIndirect (&lf) ;//设置LOGFONT

四、枚举字体 EnumFonts  EnumFontFamiliesEx

五、选择字体 BOOL ChooseFont( LPCHOOSEFONT lpcf );

原文地址:https://www.cnblogs.com/aoyihuashao/p/1723708.html