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<
关于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);
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)函数的宏定义,支持浮点数。

