textout

时间:2024-05-20 14:29:20编辑:coo君

C++ TextOutA函数无法显示内容。

#includeusing namespace std;class Array_max{public: void Max_value(int array[],int n);};int main(){ Array_max T; int a[10] = {12,12,39,-34,17,134,0,45,-91,76}; T.Max_value(a,10); return 0;}void Array_max::Max_value(int array[],int n) //::这个符号是错的,是英文状态下的{ int i,max; max = array[0]; for(i = 1;i < n;i++) { if(max < array[i]) max = array[i]; } cout<


API 如何输出一个变量的数。TextOut只能输出一个字符串。而变量该怎么输出呢?有没有相应的函数呢?

用 _stprintf 或 wsprintf 将其他变量类型格式化到缓冲区不就得了:#include // 如果使用 _stprintf 须包含例如:int i = 5, size;TCHAR s[] = "i 的值为:"TCHAR szText[256];size = wsprintf(szText, TEXT("%s%d"), s, i);TextOut(hDC, 0, 0, szText, size);wsprintf 是 Windows API,不支持 %f 浮点数。_stprintf 是标准 C 库里的 sprintf(ANSI)/ swprintf(Unicode)函数的宏定义,支持浮点数。


关于mfc中TextOut()的相关问题。

用TextOut想实现垂直输出,需要自己计算长度,一个字符一个字符的输出,还得要考虑汉字与英文的不同,可以写个函数来来实现,如下:
void CMyView::DrawTextVert(int x, int y, CString str, CDC*pDC)
{
TEXTMETRIC tm;
pDC->GetTextMetrics(&tm);
long lHeigh = tm.tmHeight;
int nLine = 0;
for(int i=0; i<str.GetLength();i++)
{
if((BYTE)str[i] > 127)
{
pDC->TextOut(x, y+nLine*lHeigh, str.Mid(i,2));
nLine++;
i++;
}
else
{
pDC->TextOut(x, y+nLine*lHeigh, str.Mid(i,1));
nLine++;
}
}
}
在OnDraw中的测试代码为:
DrawTextVert(100,100,一个字符串,pDC);


如何控制Textout函数输出的文字的颜色和背景

1、可以调用dos控制台的命令system("color xx");改变文字颜色。
设置默认的控制台文字和背景颜色。
COLOR [attr]
attr 指定控制台输出的颜色属性
颜色属性由两个十六进制数字指定 -- 第一个为背景,第二个则为文字。每个数字可以为以下任何值之一:
0 = 黑色 8 = 灰色
1 = 蓝色 9 = 淡蓝色
2 = 绿色 A = 淡绿色
3 = 浅绿色 B = 淡浅绿色
4 = 红色 C = 淡红色
5 = 紫色 D = 淡紫色
6 = 黄色 E = 淡黄色
7 = 白色 F = 亮白色
如果没有给定任何参数,该命令会将颜色还原到 CMD.EXE 启动时
的颜色
2、例程:


1
2
3
4
5
6
7

#include
#include


上一篇:奥林匹克森林公园开放时间

下一篇:远洋 万和公馆