• DrawText的使用


     DrawText函数简介

        这个函数的作用非常easy,就是在指定的区域内输出格式化的文本。

        函数原型:

    int DrawText(

      HDC hDC,

      LPCTSTR lpString,

      int nCount,

      LPRECT lpRect,

      UNIT uFormat

    );

        hDC是设备上下文句柄。lpString指向将要绘制的UNICODE文本。nCount是要输出的字符数,假设nCount = -1,则Windows自己主动计算字符数,只是此时lpString所指向的必须是以NULL结尾的字符串。lpRect指向rect结构体,指定了文本格式化的矩形区域。uFormat是格式化标记,也是这里面稍显复杂的一个參数。

        以下是几个经常使用的格式化标记:

        DT_CALCRECT:这个參数比較重要,能够使DrawText函数计算出输出文本的尺寸。假设输出文本有多行,DrawText函数使用lpRect定义的矩形的宽度,并扩展矩形的底部以容纳输出文本的最后一行。假设输出文本仅仅有一行,则DrawText函数改变矩形的右边界,以容纳下正文行的最后一个字符。出现上述不论什么一种情况,DrawText函数将返回格式化文本的高度,而不是绘制文本。

        DT_CENTER:指定文本水平居中显示。

        DT_VCENTER:指定文本垂直居中显示。该标记仅仅在单行文本输出时有效,所以它必须与DT_SINGLELINE结合使用。

        DT_SINGLELINE:单行显示文本,回车和换行符都不断行。

    ② DrawText函数使用举例

        //Get the height and length of the string.

        DrawText(hdc,szHello,-1,&rect, DT_CALCRECT | DT_CENTER | DT_SINGLELINE);

        // Draw the text

        DrawText(hdc,szHello,-1,&rectCli,DT_CENTER | DT_SINGLELINE);

    ③ 常常与DrawText结合使用的几个函数

        (1) SetTextColor 设置文本前景色

    COLORREF SetTextColor(

      HDC hdc,

      COLORREF crColor

    );

    (2) SetBkColor 设置文本背景色

    COLORREF SetBkColor(

      HDC hdc,

      COLORREF crColor

    );

        (3) SetBkMode 设备背景色模式为透明与不透明

    int SetBkMode(

      HDC hdc,

      int iBkMode

    );

  • 相关阅读:
    剑指offer--03.从尾到头打印链表
    剑指offer--02.替换空格
    剑指offer--01.二维数组中的查找
    JAVA日记之mybatis-3一对一,一对多,多对多xml与注解配置
    SpringBoot 2.x 自定义拦截器并解决静态资源访问被拦截问题
    springboot项目WEB-INF 目录 jsp页面报404
    Spring Boot 配置拦截器方式
    通过idea创建Maven项目整合Spring+spring mvc+mybatis
    idea创建maven项目
    PLSQL操作Oracle创建用户和表
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/4088776.html
Copyright © 2020-2023  润新知