如何使字体翻转180度,比如       
  *******                           *       
        *                           *       
        *     翻转后是              *
        *                           *       
        *                     *******       
  不用告诉我用CreateFont,那是不能解决问题的。 

解决方案 »

  1.   

    XFORM xForm;
    xForm.eM11=(float)1.0;
    xForm.eM12=(float)0.0;
    xForm.eM21=-(float)0.0;
    xForm.eM22=(float)-1.0;
    xForm.eDx=(FLOAT)0.0;
    xForm.eDy=(FLOAT)0.0;
    SetGraphicsMode(hdc, GM_ADVANCED);
    SetWorldTransform(hdc, &xForm); HFONT hFont=CreateFont(18, 0, 0,0, FW_NORMAL, 0,0,0,
    DEFAULT_CHARSET, 
    OUT_DEFAULT_PRECIS,
    CLIP_DEFAULT_PRECIS,
    DEFAULT_QUALITY,
    DEFAULT_PITCH| FF_DONTCARE,
    TEXT("宋体"));
    SetViewportOrgEx(hdc, 100, 100, NULL);
    hFont=(HFONT)SelectObject(hdc, hFont);

    TextOut(hdc, 0, 0, "abc", 3);

    hFont=(HFONT)SelectObject(hdc, hFont);
    DeleteObject(hFont);
      

  2.   

    你的我试过了,的确可以,不过我要多文稿的时候输出很多,屏幕会不会闪的厉害啊,朋友让有用内存dc做,可惜我的水平太低,翻了很长时间没有翻过来,不知道用内存dc怎么做,继续试验,
             chehw非常感谢你。
      

  3.   

    我觉得chehw的做法可以的,windows自己支持的东西,效率不会低的。
    内存dc也可以照用,如果你画的操作不是一次做完的,例如一行一行画,可以先画到内存dc上,画完之后再用BitBlt写到真正dc上就不会闪烁了。
      

  4.   

    CreateCompatibleDC
    BitBlt
    有着两个函数,比较简单,看看msdn就懂了。
      

  5.   

    谢谢大家的关心!!!
    fisher0303,chehw 我的这个东西需要滚屏操作,用内存dc的效果是不是应该比chehw那样效果好一点,比方说滚屏不停顿,不闪烁。
      

  6.   

    hdc也可以是指内存dc定义一个函数,加入上面的代码
    void Draw(HDC hdc); 需要使用内存dc时就用传递hMemDC,
    不需要使用内存dc时就直接传递hScreenDC, 
    需要打印时就传递hPrintDC。