zoukankan      html  css  js  c++  java
  • 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 );

  • 相关阅读:
    匿名,排序,过滤,映射,递归函数
    内置函数图
    for(var i in items) 和 for(var i;i<items.length;i++) 区别
    js中var、let、const的区别 (待总结)
    eclipse拉取git项目 Read timed out after 30,000 ms
    eclispe git config配置文件配置远程仓库
    git pull出错:cannot pull into a repository with state: merging_resolved"
    HttpClient之用CloseableHttpClient发送post请求
    注意设置httpclient连接数
    This compilation unit is not on the build path of java project (此编译单元不在java项目的生成路径上)
  • 原文地址:https://www.cnblogs.com/aoyihuashao/p/1723708.html
Copyright © 2011-2022 走看看