请问大家用TextOut()函数时,怎么让其在输出一定量的字符后能进行换行?
谢谢!!!!!!!!!!

解决方案 »

  1.   

    int x = 0;
    int y = 0;
    int i = 0;CString csTemp = _T("");
    for(i=0; i<20; i++)
    {
    csTemp.Format(_T("Line%d"), i+1);
    Textout(x, y, csTemp);
    y += 20;
    }
      

  2.   

    用DrawText有一个参数DT_WORDBREAK,给一个矩形区域就会自动换行的。
      

  3.   

    用DrawText函数好像要按回车才会换行吧?能不能控制一行多少字符,而让其自动换行。
    比如一行控制为30个字符,当一行输完30个字符后,其会自动换行,而不需要按回车键?
      

  4.   

    不要用TextOut,换DrawText,它可以指定一个显示字串的矩形,还可以多行显示。
      

  5.   

    给出一个矩形DrawText会自动判断超出区域就会换行的,这个比较容易。
      

  6.   

    用drawtext;
    RECT MultiLineDisplay( HDC hdc , RECT rect , LPWSTR lp )
    {       //rect 获得的是窗口的大小
    int nLength = lstrlen( lp );     
    RECT rc ={0};
    for( int i = 0 ; i < nLength ; i++ )
    {
    DrawText( hdc , lp + i , 1 , &rc , DT_CALCRECT);
    if( rc.right > rect.right )
    {
    rc.top = rc.bottom ;
    rc.bottom = 2*rc.bottom;
    rc.left = 0;
    rc.right = rc.right -rect.right;
    }
    DrawText( hdc , lp +i , 1,  &rc , DT_LEFT );
    rc.left = rc.right;
    }
    return rc;
    }