在vc cpp中如何让文字在指定位置竖着输出?

2025-04-06 18:31:06
推荐回答(1个)
回答1:

利用系统@字体即可。大致过程,创建一个使用@字体(就是放倒的字)旋转270度或者90度,之后TextOut输出的就是纵向显示,就像对联那样的“竖着”输出。

   CFont   myFont;           //创建字体对象   
      
    //创建逻辑字体   
    myFont.CreateFont(   
                56,                 //字体高度(旋转后的字体宽度)=56     
                20,                 //字体宽度(旋转后的字体高度)=20   
                2700,                 //字体显示角度=270°   
                0,                                     //nOrientation=0   
                10,                                   //字体磅数=10   
                FALSE,                             //非斜体   
                FALSE,                             //无下划线   
                FALSE,               //无删除线   
                DEFAULT_CHARSET,         //使用缺省字符集   
                OUT_DEFAULT_PRECIS,   //缺省输出精度   
                CLIP_DEFAULT_PRECIS,//缺省裁减精度     
                DEFAULT_QUALITY,         //nQuality=缺省值   
                DEFAULT_PITCH,             //nPitchAndFamily=缺省值   
                "@system");                   //字体名=@system   
    CFont   *pOldFont=dc.SelectObject(&myFont);//选入设备描述表   
    CRect   rtClient;   
    GetClientRect(rtClient);       //获取客户区尺寸、位置信息   
    //在客户区适当位置输出文字   
    dc.TextOut(rtClient.Width()/2+30,rtClient.Height()/8,   
                                "无边落木萧萧下");   
    dc.SelectObject(pOldFont);   //将myFont从设备环境中分离   
    myFont.DeleteObject();           //删除myFont对象