• <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
            數(shù)據(jù)加載中……

            筆記 文本走馬燈特效

            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)  編輯 收藏 引用


            只有注冊用戶登錄后才能發(fā)表評論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


            久久99国产综合精品免费| 国产精品久久久久aaaa| 国产成人综合久久久久久| 久久精品国产免费| 久久精品国产黑森林| 日本加勒比久久精品| 亚洲狠狠婷婷综合久久蜜芽 | 91麻豆精品国产91久久久久久| 久久精品国产亚洲一区二区| 久久激情亚洲精品无码?V| 麻豆久久久9性大片| 久久人爽人人爽人人片AV | 99久久伊人精品综合观看| 久久久久噜噜噜亚洲熟女综合 | 伊人久久一区二区三区无码| 无码人妻久久一区二区三区免费| 精品久久久久久久| 久久99热这里只有精品国产| 国产精品九九久久免费视频| 国产A级毛片久久久精品毛片| 国产一区二区精品久久岳| 亚洲级αV无码毛片久久精品 | 亚洲性久久久影院| 青青青国产精品国产精品久久久久| 一本色道久久88综合日韩精品 | 久久天天躁狠狠躁夜夜躁2014| 久久线看观看精品香蕉国产| 中文字幕久久波多野结衣av| 精品久久久久久久久久中文字幕| 国内精品伊人久久久久av一坑 | 午夜天堂精品久久久久| 久久亚洲国产精品五月天婷| 久久99久久99小草精品免视看| 亚洲av成人无码久久精品| 精品国产乱码久久久久软件| 欧美麻豆久久久久久中文| 久久久久九国产精品| 精品国产91久久久久久久a| 99热精品久久只有精品| 国产精品久久国产精品99盘| 国产∨亚洲V天堂无码久久久|