同一行中输出不同颜色文字
//例如:你此次股票买卖盈利10次。
那么CStringW str[3] = {L"你此次股票买卖盈利",:L"10",L"次"};
Color clr[3] = {黑色,绿色,黑色};
DrawColorText(g,str,2,L"微软雅黑",FontStyleBold,18,rtF,StringAlignmentCenter,StringAlignmentCenter,clr);
/*
wStr :需要被输出的数组
nSize:数组大小
wfontName:字体Name
style:字体风格
rtf:输出的位置
lAlign:水平对齐方式
vlAlign :竖直对齐方式
clrText:字体颜色Color数组,维数大于等于nSize
*/
void DrawColorText(Graphics &g,CStringW* wStr,int nSize,WCHAR *wfontName,FontStyle style,int nFontsize,RectF &rtf,StringAlignment lAlign,StringAlignment vlAlign,Color *clrText)
{
Gdiplus::Font capft(wfontName,nFontsize,style,UnitPixel);
StringFormat strformat;
strformat.SetAlignment(StringAlignmentNear);
strformat.SetLineAlignment(vlAlign);
CStringW WstrCap;;
for (int i = 0;i < nSize;++i)
{
WstrCap += wStr[i];
}
//计算起始点
PointF ptFStart(rtf.GetLeft(),rtf.GetTop());
RectF rtBondBox(0,0,0,0);
if(lAlign == StringAlignment::StringAlignmentCenter)
{
g.MeasureString(WstrCap,WstrCap.GetLength(),&capft,rtf,&rtBondBox);
if(rtBondBox.Width < rtf.Width)
{
ptFStart.X += (rtf.Width - rtBondBox.Width)/2 - 1;
}
}
//计算每个字符串的宽度
int *pWidth = new int[nSize];
for(int i = 0;i < nSize;++i)
{
g.MeasureString(wStr[i],wStr[i].GetLength(),&capft,rtf,&rtBondBox);
pWidth[i] = rtBondBox.Width;
}
RectF rtItem(ptFStart.X,rtf.GetTop(),rtf.GetRight(),rtf.GetBottom());
for(int i = 0;i < nSize;++i)
{
g.DrawString(wStr[i],wStr[i].GetLength(),&capft,rtItem,&strformat,&SolidBrush(clrText[i]));
rtItem.X += pWidth[i];
}
delete pWidth;
}
同一行中输出不同颜色文字相关推荐
- 输入在第一行中给出一个正整数n(1)。第二行输入n个整数,用空格分开。在一行中输出最大值及最大值的最小下标,中间用一个空格分开。
本题要求编写程序,找出给定的n个数中的最大值及其对应的最小下标(下标从0开始). 输入格式: 输入在第一行中给出一个正整数n(1).第二行输入n个整数,用空格分开. 输出格式: 在一行中输出最大值及最 ...
- 7.11 C语言练习(厘米换算英尺英寸:在一行中输出这个厘米数对应英制长度的英尺和英寸的整数值,中间用空格分开。)
[练习] 题目要求:如果已知英制长度的英尺foot和英寸inch的值,那么对应的米是(foot+inch/12)×0.3048.现在,如果用户输入的是厘米数,那么对应英制长度的英尺和英寸是多少呢?别忘 ...
- 7-100 简单求阶乘问题 (10 分)本题要求编写程序,计算N的阶乘。输入格式:输入在一行中给出一个不超过12的正整数N。输出格式:在一行中输出阶乘的值。输入样例:4结尾无空行
7-100 简单求阶乘问题 (10 分) 本题要求编写程序,计算N的阶乘. 输入格式: 输入在一行中给出一个不超过12的正整数N. 输出格式: 在一行中输出阶乘的值. 样例">输入样例 ...
- Python使用colorama输出不同颜色文字
Python实现输出不同颜色文字 通过Python可以输出不同颜色的文字 首先要安装colorama库 pip install colorama 改变字的颜色 import colorama prin ...
- 在终端中输出彩色文字
开发工作中经常见到终端中各种命令输出的彩色文字,例如 ls 命令就以不同颜色表示文件的不同类型. 而在我们自己写的程序输出的信息却是默认的黑色,本文将为你介绍终端输出带颜色的文字的原理,让我们开发的程 ...
- java在输入的同一行中输出,JAVA输入输出总结
标准输入: Scanner cin = new Scanner(System.in); cin.nextLine();:输入一行,可能存在空格,功能特点类似于C中的gets(): cin.next() ...
- java控制台输出不同颜色文字
更改输出样式,不同来源或类型的信息使用不同的输出样式,可以让我们更快地找到想要的信息. 1. java在控制台输出和普通样式不同的字符串,可以用System.err():或System.info(); ...
- 取余c语言输入一行中一个正整数n pta,正整数
1094:与7无关的数 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 30249 通过数: 20225 [题目描述] 一个正整数,如果它能被7整除,或者它 ...
- Word 行中公式与文字对不齐的解决方案
Word 行中公式与文字对不齐的解决方案 问题-公式与文字不对齐 解决方案简述版(亲测) 解决方案详细版(亲测) 参考方案 问题-公式与文字不对齐 由于复制或其它误操作,可能会出现Word一行中公式与 ...
最新文章
- Git与github基本操作
- FeignClient源码深度解析
- 在人工智能领域,人工智能机器无法如人一样理解常识知识
- Spark Troubleshooting - Task not serializable问题分析
- 管道、通道、管程的区别
- magento SEO
- python如何统计累计每日的人数‘’_每日一练 | Data Scientist amp; Business Analyst amp; Leetcode 面试题 902...
- Spark in action on Kubernetes - 存储篇(一)
- Pulseaudio实用命令(二)
- 51单片机(1)-开发工具介绍及软件安装
- 三菱FX3U-485ADP-MB通讯三种变频器程序
- 书犹药也,善读之可以医愚
- 桃园 更新完列表 不显示服务器,桃园7月25日更新内容详解
- kotlin框架Anko的使用及常用的项目配置
- 《Wireshark数据包分析实战》读书笔记
- 支付宝转账到个人账户
- 实时协作文档编辑器Etherpad
- Linux之jkd、tomcat、mysql安装
- 2019河北单招计算机考试模拟试题,2019年河北单招文科数学模拟试题(一)【含答案】.docx...
- java自动化测试语言高级之序列化
热门文章
- 【分享日记】藏趣云浏览器网络收藏夹书签,多浏览器办公神器提高浏览器切换便捷性
- 谷歌Bard_VS_百度文心一言
- android传感器 列表,android获取传感器列表
- android系统服务---大宝点
- excel统计不重复数据个数
- 计算机的cpu里集成了,存储器、CPU和输入/输出接口集成在同一块芯片上的计算机称为...
- 如何缓解痛经(缓解痛经12个方法)
- 中国联通筹建十大云数据中心
- Chrome禁用浏览器的密码框自动保存密码提示输入('autocomplete=off'在Chrome中不起作用解决方案),以及密码和用户名回填无问题
- 用企业微信机器人做交互式前端-添加微信功能