SOUI官方论坛

 找回密码
 立即注册
查看: 56|回复: 0

使用矩阵变换输出变形文字

[复制链接]
  • TA的每日心情
    奋斗
    2022-7-4 09:45
  • 签到天数: 28 天

    [LV.4]偶尔看看III

    59

    主题

    588

    帖子

    5481

    积分

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    5481

    突出贡献优秀版主

    发表于 2024-3-29 17:21:29 | 显示全部楼层 |阅读模式
    有人问如何输出细长的文字,要支持抗锯齿。
    在soui里,可以使用矩阵变换轻松实现这个效果。
    QQ图片20240329171917.png
    QQ图片20240329171937.png
    关键代码:
    [C] 纯文本查看 复制代码
    void SMtxText::OnPaint(IRenderTarget *pRT)
    {
    	SPainter painter;
    	BeforePaint(pRT,painter);
    	SMatrix mtx,oldMtx;
    	mtx.setScale(m_scaleX,m_scaleY);
    	pRT->SetTransform(mtx.fMat,oldMtx.fMat);
    	SStringT str = GetWindowText();
    	CRect rc = GetClientRect();
    	pRT->TextOut(rc.left,rc.top,str,str.GetLength());
    	pRT->SetTransform(oldMtx.fMat);
    	AfterPaint(pRT,painter);
    }
    

    源代码: Soui4Wizard1.zip (27.93 KB, 下载次数: 0, 售价: 1 SOUI币)

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|手机版|小黑屋|SOUI官方论坛

    GMT+8, 2024-4-29 01:31

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表