//例如:你此次股票买卖盈利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;
}

同一行中输出不同颜色文字相关推荐

  1. 输入在第一行中给出一个正整数n(1)。第二行输入n个整数,用空格分开。在一行中输出最大值及最大值的最小下标,中间用一个空格分开。

    本题要求编写程序,找出给定的n个数中的最大值及其对应的最小下标(下标从0开始). 输入格式: 输入在第一行中给出一个正整数n(1).第二行输入n个整数,用空格分开. 输出格式: 在一行中输出最大值及最 ...

  2. 7.11 C语言练习(厘米换算英尺英寸:在一行中输出这个厘米数对应英制长度的英尺和英寸的整数值,中间用空格分开。)

    [练习] 题目要求:如果已知英制长度的英尺foot和英寸inch的值,那么对应的米是(foot+inch/12)×0.3048.现在,如果用户输入的是厘米数,那么对应英制长度的英尺和英寸是多少呢?别忘 ...

  3. 7-100 简单求阶乘问题 (10 分)本题要求编写程序,计算N的阶乘。输入格式:输入在一行中给出一个不超过12的正整数N。输出格式:在一行中输出阶乘的值。输入样例:4结尾无空行

    7-100 简单求阶乘问题 (10 分) 本题要求编写程序,计算N的阶乘. 输入格式: 输入在一行中给出一个不超过12的正整数N. 输出格式: 在一行中输出阶乘的值. 样例">输入样例 ...

  4. Python使用colorama输出不同颜色文字

    Python实现输出不同颜色文字 通过Python可以输出不同颜色的文字 首先要安装colorama库 pip install colorama 改变字的颜色 import colorama prin ...

  5. 在终端中输出彩色文字

    开发工作中经常见到终端中各种命令输出的彩色文字,例如 ls 命令就以不同颜色表示文件的不同类型. 而在我们自己写的程序输出的信息却是默认的黑色,本文将为你介绍终端输出带颜色的文字的原理,让我们开发的程 ...

  6. java在输入的同一行中输出,JAVA输入输出总结

    标准输入: Scanner cin = new Scanner(System.in); cin.nextLine();:输入一行,可能存在空格,功能特点类似于C中的gets(): cin.next() ...

  7. java控制台输出不同颜色文字

    更改输出样式,不同来源或类型的信息使用不同的输出样式,可以让我们更快地找到想要的信息. 1. java在控制台输出和普通样式不同的字符串,可以用System.err():或System.info(); ...

  8. 取余c语言输入一行中一个正整数n pta,正整数

    1094:与7无关的数 时间限制: 1000 ms         内存限制: 65536 KB 提交数: 30249     通过数: 20225 [题目描述] 一个正整数,如果它能被7整除,或者它 ...

  9. Word 行中公式与文字对不齐的解决方案

    Word 行中公式与文字对不齐的解决方案 问题-公式与文字不对齐 解决方案简述版(亲测) 解决方案详细版(亲测) 参考方案 问题-公式与文字不对齐 由于复制或其它误操作,可能会出现Word一行中公式与 ...

最新文章

  1. Git与github基本操作
  2. FeignClient源码深度解析
  3. 在人工智能领域,人工智能机器无法如人一样理解常识知识
  4. Spark Troubleshooting - Task not serializable问题分析
  5. 管道、通道、管程的区别
  6. magento SEO
  7. python如何统计累计每日的人数‘’_每日一练 | Data Scientist amp; Business Analyst amp; Leetcode 面试题 902...
  8. Spark in action on Kubernetes - 存储篇(一)
  9. Pulseaudio实用命令(二)
  10. 51单片机(1)-开发工具介绍及软件安装
  11. 三菱FX3U-485ADP-MB通讯三种变频器程序
  12. 书犹药也,善读之可以医愚
  13. 桃园 更新完列表 不显示服务器,桃园7月25日更新内容详解
  14. kotlin框架Anko的使用及常用的项目配置
  15. 《Wireshark数据包分析实战》读书笔记
  16. 支付宝转账到个人账户
  17. 实时协作文档编辑器Etherpad
  18. Linux之jkd、tomcat、mysql安装
  19. 2019河北单招计算机考试模拟试题,2019年河北单招文科数学模拟试题(一)【含答案】.docx...
  20. java自动化测试语言高级之序列化

热门文章

  1. 【分享日记】藏趣云浏览器网络收藏夹书签,多浏览器办公神器提高浏览器切换便捷性
  2. 谷歌Bard_VS_百度文心一言
  3. android传感器 列表,android获取传感器列表
  4. android系统服务---大宝点
  5. excel统计不重复数据个数
  6. 计算机的cpu里集成了,存储器、CPU和输入/输出接口集成在同一块芯片上的计算机称为...
  7. 如何缓解痛经(缓解痛经12个方法)
  8. 中国联通筹建十大云数据中心
  9. Chrome禁用浏览器的密码框自动保存密码提示输入('autocomplete=off'在Chrome中不起作用解决方案),以及密码和用户名回填无问题
  10. 用企业微信机器人做交互式前端-添加微信功能