标签:compress you plain processor nowrap erp height graph orange
CRect rect;
    GetClientRect(hWnd, rect);    HDC hdc = GetDC(hWnd);    HDC memDC = CreateCompatibleDC(hdc);    BITMAPINFO bmi;    bmi.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);    bmi.bmiHeader.biBitCount = 32;    bmi.bmiHeader.biHeight = rect.Height();    bmi.bmiHeader.biWidth = rect.Width();    bmi.bmiHeader.biPlanes = 1;    bmi.bmiHeader.biCompression = BI_RGB;    bmi.bmiHeader.biClrImportant = 0;    bmi.bmiHeader.biClrUsed = 0;    bmi.bmiHeader.biXPelsPerMeter = 0;    bmi.bmiHeader.biYPelsPerMeter = 0;    bmi.bmiHeader.biSizeImage = rect.Width()*rect.Height() * 32 / 8;         HBITMAP bmp = CreateDIBSection(hdc, &bmi, 0, NULL, NULL, 0);    SelectObject(memDC, bmp);    Gdiplus::Graphics *graphics = new Gdiplus::Graphics(memDC);    graphics->SetSmoothingMode(Gdiplus::SmoothingModeAntiAlias);    graphics->SetTextRenderingHint(Gdiplus::TextRenderingHintAntiAlias);#ifdef _UNICODE    LPWSTR str = (LPWSTR)_lyric;#else    USES_CONVERSION;    LPWSTR str = A2W(_lyric);#endif // _UNICODE    Gdiplus::FontFamily fontFamily(L"微软雅黑");    Gdiplus::Font m_pFont(&fontFamily, 48, Gdiplus::FontStyleRegular, Gdiplus::UnitPixel);    Gdiplus::Font m_pFont2(&fontFamily, 48, Gdiplus::FontStyleUnderline, Gdiplus::UnitPixel);//下划线    Gdiplus::StringFormat format;     RectF layoutRect(0, 0, 1000, 100);    RectF boundingBox;    StringFormat strfmt;    strfmt.SetTrimming(StringTrimmingWord);    strfmt.SetFormatFlags(StringFormatFlagsNoWrap);    strfmt.SetLineAlignment(StringAlignmentCenter);    strfmt.SetAlignment(StringAlignmentCenter);    graphics->MeasureString(str, -1, &m_pFont, layoutRect, &strfmt, &boundingBox);              Gdiplus::GraphicsPath stringPath(FillModeAlternate);//创建路径    stringPath.AddString(str, -1, &fontFamily, m_pFont.GetStyle(), 48, boundingBox,&strfmt); //把文字加入路径         graphics->DrawPath(&Pen(Color(150,0,0,0)), &stringPath);//绘制边框         Gdiplus::LinearGradientBrush brush(boundingBox, Color::Blue, Color::Red, LinearGradientModeHorizontal);    int colors[] = { Color::Red ,Color::Orange ,Color::Yellow ,Color::Green ,Color::Cyan,Color::Blue ,Color::Purple };    REAL positions[] = { 0.0f,0.16f,0.33f,0.50f,0.67f,0.83f,1.0f };    brush.SetInterpolationColors((Color*)colors, positions, 7);    graphics->FillPath(&brush, &stringPath);//填充路径    RectF fillrect = boundingBox;    fillrect.Width = (boundingBox.Width*0.2);    stringPath.AddString(str, -1, &fontFamily, m_pFont2.GetStyle(), 48, boundingBox, &strfmt); //把文字加入路径    graphics->IntersectClip(fillrect);    graphics->FillPath(&SolidBrush(Color::Red), &stringPath);    RectF fillrect2 = boundingBox;    fillrect2.X += 500;    fillrect2.Width = (boundingBox.Width*0.2);    graphics->SetClip(fillrect2);       graphics->FillPath(&SolidBrush(Color::Green), &stringPath);    delete graphics;         BLENDFUNCTION bldfun;    bldfun.AlphaFormat = AC_SRC_ALPHA;    bldfun.BlendFlags = 0;    bldfun.BlendOp = AC_SRC_OVER;    bldfun.SourceConstantAlpha = 255;    UpdateLayeredWindow(hWnd, hdc, NULL, &CSize(1000, 100), memDC, &CPoint(0, 0), 0, &bldfun, ULW_ALPHA);         ::ReleaseDC(hWnd, hdc);    ::DeleteDC(memDC);    DeleteObject(bmp);
标签:compress you plain processor nowrap erp height graph orange
原文地址:https://www.cnblogs.com/ye-ming/p/9270027.html