• GDI+学习笔记9-绘制网站流量报表


    AlphaBlend: 图片的Alpha混合贴图
    BOOL AlphaBlend(
      HDC hdcDest,
      int xoriginDest,
      int yoriginDest,
      int wDest,
      int hDest,
      HDC hdcSrc,
      int xoriginSrc,
      int yoriginSrc,
      int wSrc,
      int hSrc,
      BLENDFUNCTION ftn
    );
    hdcDest:目标DC,
    ftn:设置图片混合信息(如透明度)的结构体
    typedef struct _BLENDFUNCTION {
      BYTE BlendOp;
      BYTE BlendFlags;
      BYTE SourceConstantAlpha;
      BYTE AlphaFormat;
    } BLENDFUNCTION, *PBLENDFUNCTION, *LPBLENDFUNCTION;

    AlphaBlend的使用,需要设置半透明度的信息。通过BLENDFUNCTION结构体的SourceContantAlpha成员来设置,设置范围为0~255

    解决界面闪烁问题:(拉伸窗体时,界面会闪烁):
    case WM_PAINT:
    {
    hdc = BeginPaint(hWnd, &ps);
    // TODO: 在此添加任意绘图代码...
    RECT rcClient;
    ::GetClientRect(hWnd,&rcClient);
    HDC hMemDC=::CreateCompatibleDC(hdc);
    HBITMAP hBitMap = ::CreateCompatibleBitmap(hdc,rcClient.right-rcClient.left,rcClient.bottom-rcClient.top);
    HBITMAP hOldBmp = (HBITMAP)::SelectObject(hMemDC,hBitMap);
    // 画背景
    PaintImage(hWnd, hMemDC);
    // 画文字
    PaintString(hWnd,hMemDC);
    // 画线
    PaintLine(hMemDC);
    PaintRect(hMemDC);
    PaintEllipse(hMemDC);
    PaintPie(hMemDC);
    ::BitBlt(hdc,0,0,rcClient.right-rcClient.left,
    rcClient.bottom-rcClient.top,
    hMemDC,0,0,SRCCOPY);
    ::SelectObject(hMemDC,hOldBmp);
    ::DeleteObject(hBitMap);
    ::DeleteObject(hMemDC);
    EndPaint(hWnd, &ps);
    break;
    }
    case WM_ERASEBKGND:
    {
    return 0;
    }
  • 相关阅读:
    MySQL5.6 单列、多列索引以及IN语句的优化(翻译)
    curl
    HTML meta
    access limit
    document、location、body 属性方法
    ASP对Excel的基本操作
    IE6/IE7/FF(火狐Firefox)及其他浏览器的兼容性通用解决方法
    CSS兼容IE与Firefox要点分析
    PHP函数
    vs2005 修改新增文件时的默认编码方式(转)
  • 原文地址:https://www.cnblogs.com/AlexanderZhao/p/12878989.html
Copyright © 2020-2023  润新知