WinAPI: DrawTextEx - 多功能文本绘制

2024-05-26 22:08

本文主要是介绍WinAPI: DrawTextEx - 多功能文本绘制,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

//声明:
DrawTextEx(DC: HDC;                  {设备句柄}lpchText: PChar;          {文本}cchText: Integer;         {要绘制的字符个数; -1 表示全部}var p4: TRect;            {矩形结构}dwDTFormat: UINT;         {选项}DTParams: PDrawTextParams {附加参数, 指向一个 DRAWTEXTPARAMS 结构}
): Integer;                 {返回文本高度}//dwDTFormat 参数的可选值:
DT_TOP             = 0;         {顶对齐, 须 or DT_SINGLELINE}
DT_LEFT            = 0;         {左对齐}
DT_CENTER          = 1;         {水平居中}
DT_RIGHT           = 2;         {右对齐}
DT_VCENTER         = 4;         {垂直居中, 须 or DT_SINGLELINE}
DT_BOTTOM          = 8;         {底对齐, 须 or DT_SINGLELINE}
DT_WORDBREAK       = $10;       {给超出边界的单词换行; 如果 SetTextAlign 函数设置了 TA_UPDATECP, 这里的设置无效}
DT_SINGLELINE      = $20;       {单行文本}
DT_EXPANDTABS      = $40;       {扩展制表符, 默认制表跨 8 个字符}
DT_TABSTOP         = $80;       {TAB 后添加的字符数}
DT_NOCLIP          = $100;      {使文本不限制在指定的矩形内}
DT_EXTERNALLEADING = $200;      {返回的高度包括字体的外部行距}
DT_CALCRECT        = $400;      {自动检测容纳文本的矩形的高度和宽度, 并返回高度, 但文本不被绘制}
DT_NOPREFIX        = $800;      {不处理前缀字符(&); 默认时, & 后的字符会被添加下划线}
DT_INTERNAL        = $1000;     {用系统字体来计算文本高度}
DT_HIDEPREFIX      = $00100000; {隐藏下划线}
DT_PREFIXONLY      = $00200000; {将 & 解释为前缀}
DT_EDITCONTROL     = $2000;     {如果最后一行只是部分可见, 将不被绘制}
DT_PATH_ELLIPSIS   = $4000;     {文本过长时, 中间使用 ... 会尽量保留最后一个 \ 后面的字符}
DT_END_ELLIPSIS    = $8000;     {文本过长时, 尾部使用 ...}
DT_MODIFYSTRING    = $10000;    {省略显示, 只与 DT_PATH_ELLIPSIS、DT_END_ELLIPSIS 联合使用}
DT_RTLREADING      = $20000;    {从右到左绘制文本, 只用于相应语种}
DT_WORD_ELLIPSIS   = $40000;    {截短不符合矩形的正文, 并增加椭圆}//DRAWTEXTPARAMS 结构是 tagDRAWTEXTPARAMS 的重定义:
tagDRAWTEXTPARAMS = packed recordcbSize: UINT;          {结构大小}iTabLength: Integer;   {TAB 占位大小, 以字符平均宽度为单位}iLeftMargin: Integer;  {左边距, 以字符平均宽度为单位}iRightMargin: Integer; {右边距, 以字符平均宽度为单位}uiLengthDrawn: UINT;   {返回 DrawTextEx 函数绘制的字符个数, 包括空格}
end;
//例1: procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;Shift: TShiftState; X, Y: Integer); varMyRect: TRect;str: string; beginMyRect.Left  := X;MyRect.Top    := Y;MyRect.Right  := X + 200;MyRect.Bottom := Y + 200;str := Application.ExeName;DrawTextEx(Canvas.Handle,PChar(str),-1,MyRect,DT_MODIFYSTRING or DT_END_ELLIPSIS,nil); end;
//效果图:

//例2:
procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;Shift: TShiftState; X, Y: Integer);
varMyRect: TRect;str: string;
beginMyRect.Left   := X;MyRect.Top    := Y;MyRect.Right  := X + 200;MyRect.Bottom := Y + 200;str := Application.ExeName;DrawTextEx(Canvas.Handle,PChar(str),-1,MyRect,DT_MODIFYSTRING or DT_PATH_ELLIPSIS,nil);
end;
//效果图:

这篇关于WinAPI: DrawTextEx - 多功能文本绘制的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1005724

相关文章

使用Python绘制3D堆叠条形图全解析

《使用Python绘制3D堆叠条形图全解析》在数据可视化的工具箱里,3D图表总能带来眼前一亮的效果,本文就来和大家聊聊如何使用Python实现绘制3D堆叠条形图,感兴趣的小伙伴可以了解下... 目录为什么选择 3D 堆叠条形图代码实现:从数据到 3D 世界的搭建核心代码逐行解析细节优化应用场景:3D 堆叠图

Python中图片与PDF识别文本(OCR)的全面指南

《Python中图片与PDF识别文本(OCR)的全面指南》在数据爆炸时代,80%的企业数据以非结构化形式存在,其中PDF和图像是最主要的载体,本文将深入探索Python中OCR技术如何将这些数字纸张转... 目录一、OCR技术核心原理二、python图像识别四大工具库1. Pytesseract - 经典O

苹果macOS 26 Tahoe主题功能大升级:可定制图标/高亮文本/文件夹颜色

《苹果macOS26Tahoe主题功能大升级:可定制图标/高亮文本/文件夹颜色》在整体系统设计方面,macOS26采用了全新的玻璃质感视觉风格,应用于Dock栏、应用图标以及桌面小部件等多个界面... 科技媒体 MACRumors 昨日(6 月 13 日)发布博文,报道称在 macOS 26 Tahoe 中

Python实现精准提取 PDF中的文本,表格与图片

《Python实现精准提取PDF中的文本,表格与图片》在实际的系统开发中,处理PDF文件不仅限于读取整页文本,还有提取文档中的表格数据,图片或特定区域的内容,下面我们来看看如何使用Python实... 目录安装 python 库提取 PDF 文本内容:获取整页文本与指定区域内容获取页面上的所有文本内容获取

详解如何使用Python从零开始构建文本统计模型

《详解如何使用Python从零开始构建文本统计模型》在自然语言处理领域,词汇表构建是文本预处理的关键环节,本文通过Python代码实践,演示如何从原始文本中提取多尺度特征,并通过动态调整机制构建更精确... 目录一、项目背景与核心思想二、核心代码解析1. 数据加载与预处理2. 多尺度字符统计3. 统计结果可

QT6中绘制UI的两种方法详解与示例代码

《QT6中绘制UI的两种方法详解与示例代码》Qt6提供了两种主要的UI绘制技术:​​QML(QtMeta-ObjectLanguage)​​和​​C++Widgets​​,这两种技术各有优势,适用于不... 目录一、QML 技术详解1.1 QML 简介1.2 QML 的核心概念1.3 QML 示例:简单按钮

Python使用Matplotlib绘制3D曲面图详解

《Python使用Matplotlib绘制3D曲面图详解》:本文主要介绍Python使用Matplotlib绘制3D曲面图,在Python中,使用Matplotlib库绘制3D曲面图可以通过mpl... 目录准备工作绘制简单的 3D 曲面图绘制 3D 曲面图添加线框和透明度控制图形视角Matplotlib

C#TextBox设置提示文本方式(SetHintText)

《C#TextBox设置提示文本方式(SetHintText)》:本文主要介绍C#TextBox设置提示文本方式(SetHintText),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录C#TextBox设置提示文本效果展示核心代码总结C#TextBox设置提示文本效果展示核心代

使用Python实现文本转语音(TTS)并播放音频

《使用Python实现文本转语音(TTS)并播放音频》在开发涉及语音交互或需要语音提示的应用时,文本转语音(TTS)技术是一个非常实用的工具,下面我们来看看如何使用gTTS和playsound库将文本... 目录什么是 gTTS 和 playsound安装依赖库实现步骤 1. 导入库2. 定义文本和语言 3

Python实现常用文本内容提取

《Python实现常用文本内容提取》在日常工作和学习中,我们经常需要从PDF、Word文档中提取文本,本文将介绍如何使用Python编写一个文本内容提取工具,有需要的小伙伴可以参考下... 目录一、引言二、文本内容提取的原理三、文本内容提取的设计四、文本内容提取的实现五、完整代码示例一、引言在日常工作和学