zoukankan      html  css  js  c++  java
  • error2BeginPath和EndPath之间的TextOut无法显示

    并不是所有字体,由TextOut函数输出都能形成路径,
    通常像宋体、楷体_GB2312等TrueType类型的字体才可以,

    有一个简单的判断方法,当你打开字体选择对话框时,只有字体
    前有T符号标记的,才是TrueType字体,当然在CFontDialog中可以
    指定只显示TrueType字体!

    所以以下代码经测试通过!
    void CTextView::OnDraw(CDC* /*pDC*/)
    {
        CTextDoc* pDoc = GetDocument();
        ASSERT_VALID(pDoc);
        if (!pDoc)
            return;

        // TODO: 在此处为本机数据添加绘制代码

        CClientDC dc(this);

        CString zec;
        zec.LoadStringW(IDS_STRINGzec01);
        CSize cs = dc.GetTextExtent(zec);
        CRect rect;
        rect.left = 0;
        rect.top = 50;
        rect.right = 50 + cs.cx;
        rect.bottom = 50 + cs.cy;
        dc.TextOut(0,50,zec);
        dc.BeginPath();
        dc.Rectangle(0,50,cs.cx,50+cs.cy);         //划定一个区域作为剪切区域
        dc.EndPath();
        dc.SelectClipPath(RGN_DIFF);

        for (int i=0;i<100;i++)
        {
            dc.MoveTo(0,i*5);
            dc.LineTo(500,i*5);
        }
        for (int j=0;j<100;j++)
        {
            dc.MoveTo(j*5,0);
            dc.LineTo(j*5,600);
        }
    }

  • 相关阅读:
    maven私服
    docker
    mysql ip
    jenkins安装
    centeros7防火墙操作
    centeros7 gitlap安装
    nexus安装及使用(maven私服掌握)
    idea永久激活使用
    redis密码验证
    Nginx服务优化配置
  • 原文地址:https://www.cnblogs.com/forlina/p/2124607.html
Copyright © 2011-2022 走看看