• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            隨筆 - 25, 文章 - 0, 評論 - 6, 引用 - 0
            數據加載中……

            筆記 文本走馬燈特效

            SizeF stringSize, strSize(1000,1000);

                if (m_bStatic)
                {
                    /// <靜止,居中>
                    fmt.SetAlignment(StringAlignmentCenter);
                    fmt.SetLineAlignment(StringAlignmentCenter);
                
                    graph.MeasureString(m_wstrText.c_str(), m_wstrText.length(), &font, strSize, &fmt, &stringSize);
                    
                    RectF rectf(m_rect.GetLeft(), m_rect.GetTop(), m_rect.Width, min(m_rect.Height, stringSize.Height));
                    DrawString(graph, m_wstrText, font, solidBrush, rectf, fmt);
                }
                else
                {
                    /// <左移,左對齊>
                    fmt.SetAlignment(StringAlignmentNear);
                    fmt.SetLineAlignment(StringAlignmentNear);

                    /// <測量輸出字符串所需要的矩形空間>
                    std::wstring wstr = m_wstrText;        
                    graph.MeasureString(wstr.c_str(), wstr.length(), &font, strSize, &fmt, &stringSize);

                    double fProgress = m_timeInfo.GetProgress();
                    //REAL fOffsetX = max(m_rect.Width, stringSize.Width) * fProgress;
                    REAL fOffsetX = (stringSize.Width + m_rect.Width) * fProgress;
                    REAL fDiffx = fOffsetX - m_rect.Width;
                    
                    if (fDiffx > 0.000001)
                    {
                        int nLength = 1;
                        std::wstring wstrTmp = L"";
                        do
                        {
                            wstrTmp = wstr.substr(0, nLength++);
                            graph.MeasureString(wstrTmp.c_str(), wstrTmp.length(), &font, strSize, &fmt, &stringSize);
                        }while(stringSize.Width < abs(fDiffx));

                        --nLength;
                        wstr = wstr.substr(nLength, wstr.length() - nLength);
                    }

                    graph.MeasureString(L"1", 2, &font, strSize, &fmt, &stringSize);

                    fOffsetX = max(m_rect.GetLeft(), m_rect.GetRight() - fOffsetX);
                    RectF rect(fOffsetX, m_rect.GetTop(), min(m_rect.Width, max(1, m_rect.GetRight() - fOffsetX)), min(m_rect.Height, stringSize.Height));
                    DrawString(graph, wstr, font, solidBrush, rect, fmt);
                }

            posted on 2014-09-01 11:49 chenjt3533 閱讀(388) 評論(0)  編輯 收藏 引用

            亚洲国产成人久久一区久久| 亚洲欧洲精品成人久久曰影片 | 久久精品国产亚洲一区二区三区| 国产一级持黄大片99久久| 国产亚洲欧美成人久久片| 久久免费观看视频| 亚洲国产精品成人久久| 亚洲国产精久久久久久久| 综合久久一区二区三区 | 国内精品人妻无码久久久影院导航 | 亚洲AV日韩AV天堂久久| 狠狠综合久久综合中文88| 青青草原综合久久大伊人| 九九99精品久久久久久| 久久亚洲国产精品成人AV秋霞 | 狠狠综合久久综合88亚洲| 91精品国产色综久久| 久久精品免费一区二区| 国产精品热久久无码av| 99精品久久精品一区二区| 伊人久久大香线蕉无码麻豆| 久久久99精品成人片中文字幕| 久久偷看各类wc女厕嘘嘘| 欧美亚洲国产精品久久高清 | 欧美激情精品久久久久久| 精品免费tv久久久久久久| 亚洲va中文字幕无码久久不卡| 欧美日韩精品久久久久| 国产成人久久久精品二区三区| 久久精品国产91久久麻豆自制| 久久青青草原精品国产| 亚洲午夜久久久影院伊人| 精品久久久久久无码不卡| 久久人妻少妇嫩草AV蜜桃| 久久精品国产99久久久香蕉| 国内精品久久久久久久久| 国内精品久久久久国产盗摄| 久久99国产一区二区三区| 久久久久国产成人精品亚洲午夜| 国产成人综合久久久久久| 中文字幕成人精品久久不卡|