文本绘制
TextOut-将文字绘制在指定坐标位置
DrawText-在矩形区域绘制字符串

int DrawText(HDC hdc, //DC句柄LPCSTR lpString, //字符串int nCount, //字符串长度LPRECT lpRect, //绘制文字的矩形框UINT uFormat //绘制的方式,重点,花样繁多的关键点
);

绘制文字样式简单说明

/** DrawText() Format Flags*/
#define DT_TOP                      0x00000000 //靠顶部
#define DT_LEFT                     0x00000000 //靠左
#define DT_CENTER                   0x00000001 //水平中间显示
#define DT_RIGHT                    0x00000002 //水平靠右
#define DT_VCENTER                  0x00000004 //垂直中间显示
#define DT_BOTTOM                   0x00000008 //靠底部显示
#define DT_WORDBREAK                0x00000010 //换行,多行显示,一行满了下一行显示
#define DT_SINGLELINE               0x00000020 //单行显示
#define DT_EXPANDTABS               0x00000040
#define DT_TABSTOP                  0x00000080
#define DT_NOCLIP                   0x00000100 //不裁切,即便显示不下也继续显示
#define DT_EXTERNALLEADING          0x00000200
#define DT_CALCRECT                 0x00000400
#define DT_NOPREFIX                 0x00000800
#define DT_INTERNAL                 0x00001000

文字颜色和背景
文字颜色:SetTextColor
文字背景色:SetBkColor 只适合OPAQUE模式下才会生效
文字背景模式:SetBkMode(OPAQUE/TRANSPARENT)

/* Background Modes */
#define TRANSPARENT         1 //透明
#define OPAQUE              2 //非透明
#define BKMODE_LAST         2

字体
字体相关
Windows常用的字体为TrueType格式的字体文件
TrutType:每个字体的点阵字形保存每一个字的真实外观
字体名-标识字体名称
HFONT-字体句柄
字体的使用
1.创建字体
CreateFont函数
HFONT CreateFont(
int nHeigth,//字体高度
int nWidth, //字体宽度
int nEscapement, //字符串倾斜角度
int Orientation, //字符旋转角度
int fnWeight, //字体粗细
DWORD fdwItalic,//斜体
DWORD fdwUnderline,// 字符下划线
DWORD fdwStrikeOut,//字体删除线
DWORD fdwCharSet,//字符集
DWORD fdwOutPutPrecision,//输出精度(基本已废弃参数)
DWORD fdwClipPrecision,//剪切精度(基本已废弃参数)
DWORD fdwQuality,//输出质量(基本已废弃参数)
DWORD fdwPitchAndFamily,//匹配字体(基本已废弃参数)
LPCTSTR lpszFace //字体名称
); //返回创建的文件句柄
//windows定义CreateFont

WINAPI CreateFontW(
__in int cHeight,
__in int cWidth,
__in int cEscapement,
__in int cOrientation,
__in int cWeight,
__in DWORD bItalic,
__in DWORD bUnderline,
__in DWORD bStrikeOut,
__in DWORD iCharSet,
__in DWORD iOutPrecision,
__in DWORD iClipPrecision,
__in DWORD iQuality,
__in DWORD iPitchAndFamily,
__in_opt LPCWSTR pszFaceName
);

2.应用字体到DC
SelectObject
3.绘制文字
DrawText、TextOut
4.取出字体,把系统字体还回去
SelectObject
5.删除字体,释放资源
DeleteObject

void DrawText(HDC hdc,int x,int y)
{TCHAR szTextOut[STRMAX256];TCHAR szDrawText[STRMAX256];RECT rect = {0,100,500,200};LoadString(g_hInstance,IDS_szTextOut,szTextOut,STRMAX256);LoadString(g_hInstance,IDS_szDrawText,szDrawText,STRMAX256);TextOut(hdc,x,y,szTextOut,lstrlen(szTextOut));//矩形区域显示出来Rectangle(hdc,rect.left,rect.top,rect.right,rect.bottom);//修改颜色SetTextColor(hdc,RGB(255,0,255)); //设置字体颜色SetBkColor(hdc,RGB(0,255,255)); //设置背景色SetBkMode(hdc,OPAQUE); //非透明模式SetBkMode(hdc,TRANSPARENT); //透明模式//1.创建字体HFONT hFont = CreateFont(30, //设置宽度300, //设置0时,按汉字系统默认的宽度给一个值45,0,900, //字体粗细900是默认,也不是一个很粗的值1,1,GB2312_CHARSET, //国标0,0,0,0,0,"黑体");//2.设置字体HGDIOBJ hOldGdiobj = SelectObject(hdc,(HGDIOBJ)hFont);//3.画字体DrawText(hdc,szDrawText,lstrlen(szDrawText),&rect,DT_LEFT|DT_TOP|DT_WORDBREAK|DT_NOCLIP);//4.把旧的字体还回系统SelectObject(hdc,hOldGdiobj);//5.删除字体句柄DeleteObject(hOldGdiobj);
}

windows文本绘制 TextOut、DrawText、CreateFont、SetTextColor、SetBkColor、SetBkMode相关推荐

  1. windows编程之TextOut与DrawText -- 文本输出实验

    文章目录 windows编程之TextOut与DrawText -- 文本输出实验 实验名称 实验目的 实验要求 实验源码 思考题 windows编程之TextOut与DrawText – 文本输出实 ...

  2. windows编程之TextOut与DrawText

    文章目录 windows编程之TextOut与DrawText TextOut 是什么函数 TextOut 函数原型 DrawText 是什么函数 DrawText 函数原型 TextOut与Draw ...

  3. 【DND图形库】四、文本绘制和按键检测

    四.文本绘制和按键检测 (甲)文本绘制 文本是Text类,本质上是基于Sprite的,但是用户不需要考虑这么多.首先我们需要准备一个字体文件,在系统的C:\Windows\Fonts目录,有许多的字体 ...

  4. android staticlayout使用讲解,可实现文本绘制换行处理

    原帖地址:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/0915/1682.html 使用Canvas的drawText绘制文本 ...

  5. Windows文本框星号密码查看器

    Windows文本框星号密码查看器 本人2002的学习作品 作者:成晓旭 1.  设计原理:注册一个系统级鼠标挂钩,通过监测系统鼠标所在Windows窗口来获取密码,成功获取密码之后,通过发送自定义的 ...

  6. 删除Windows 文本右键选项

    删除Windows 文本右键选项 在Windows上用所谓的绿色版安装了EditPlus,但是给的卸载程序(即删除掉注册表相应的选项)无法使用,导致只能手动从Regedit(注册表-编辑器)中手动删除 ...

  7. 分享一个超大文件编辑器(WINDOWS 文本编辑器)

    下载地址:https://download.csdn.net/download/u014698745/86812227 官网地址:EmEditor (文本编辑器) – 支持大文件和Unicode的最佳 ...

  8. java调用espeak_espeak-example Java for windows文本转语音,用 引擎 Other systems 其他 244万源代码下载- www.pudn.com...

    文件名称: espeak-example下载  收藏√  [ 5  4  3  2  1 ] 开发工具: Java 文件大小: 1286 KB 上传时间: 2015-10-04 下载次数: 0 提 供 ...

  9. Calca for Windows(文本编辑器/符号计算器)

    Calca for Windows(文本编辑器/符号计算器) Calca 第一次使用,是在Mac版,方便的用法,可以定义函数名,做自己的计算公式,只需要录入数字,即可完成一系列的运算.现在工作换到Wi ...

最新文章

  1. 机器学习中的优化方法小结
  2. C博客作业01--分支、顺序结构
  3. Visual Studio 2010 旗舰版安装图解
  4. linux sz rz 下载与上传命令
  5. c++开发软件_Windows下学习C语言有哪些集成开发软件?
  6. Django系列16-员工管理系统实战--echar图表统计
  7. 前沿科技-混合现实(MR)远程协作辅助工具:微缩虚拟形象Mini-Me
  8. element ui图标使用方法
  9. Matlab中Savitzky-Golay filtering(最小二乘平滑滤波)函数sgolayfilt的使用方法
  10. Photoshop合成雪景天使美女照片
  11. 解决关于腾讯会议黑屏问题(ThinkpadE420型号)
  12. 打印100以内的质数
  13. 集线器 交换机 路由器关系
  14. npm 发布包与遇见的问题 (随记)
  15. OpenGL学习04_点画模式(点画线)
  16. Excel·VBA文字数字混合求和
  17. Typora实现云笔记,支持云同步+多端查看(附免费方案)
  18. 2010Asia Harbin Regional Contest----Seaside(HDU3665)
  19. mysql drop后回收站怎么恢复吗_回收站清空了怎么恢复
  20. wampserver橙色如何变成绿色

热门文章

  1. [叽里呱啦G客沙龙]5月18日与技术大牛一起在叽里呱啦畅想技术!
  2. 在Windows电脑直接申请iOS开发证书p12及.mobileprovision
  3. 如何避免成为一个油腻的前端 1
  4. 【分类器】机器学习综述
  5. python画散点图最多画几维_妈耶,python的散点图竟然能画这么好看!
  6. Navicat远程连接腾讯云的mysql服务器(解决1045错误)
  7. 基于51单片机的人体红外探测防盗报警(仿真+源码+全套资料)
  8. NPM酷库:globby,增强版的glob
  9. 【Python】zip、reversed、sorted函数及用法
  10. win10如何打开摄像头_win10中如何打开画图工具--win10专业版