• <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 閱讀(385) 評論(0)  編輯 收藏 引用

            中文字幕无码久久久| 久久久噜噜噜久久| 国产亚洲色婷婷久久99精品| 色欲久久久天天天综合网精品| A级毛片无码久久精品免费| 久久久久久久久久久久中文字幕| 俺来也俺去啦久久综合网| 久久久久国产视频电影| 久久天天躁狠狠躁夜夜躁2O2O| 94久久国产乱子伦精品免费 | 亚洲欧洲久久av| 国产精品女同久久久久电影院| 久久久91人妻无码精品蜜桃HD| 精品久久久久久国产| 久久精品99无色码中文字幕| 午夜精品久久久久久久久| 久久se这里只有精品| 色婷婷久久综合中文久久蜜桃av | 精品久久久久久无码中文字幕一区| 26uuu久久五月天| 日产精品久久久一区二区| 色偷偷88欧美精品久久久| 中文字幕成人精品久久不卡| 日日噜噜夜夜狠狠久久丁香五月 | 久久人人爽人人人人爽AV| 97精品国产97久久久久久免费| 欧洲成人午夜精品无码区久久| 亚洲国产天堂久久久久久| 欧美日韩中文字幕久久伊人| 久久久久无码精品国产| 日产精品久久久一区二区| 日韩精品无码久久久久久| 中文字幕乱码人妻无码久久| 久久婷婷五月综合成人D啪| 一本大道久久东京热无码AV| 热久久国产欧美一区二区精品| a级毛片无码兔费真人久久| 亚洲嫩草影院久久精品| 99久久精品国产一区二区蜜芽| 亚洲综合久久综合激情久久| 青青青国产成人久久111网站|