zoukankan      html  css  js  c++  java
  • 如何使用GDI绘制半透明矩形

    [cpp] view plain copy
     
    1. /*使用GDI绘制半透明矩形*/  
    2. void CDirectXDraw::DrawHalfOpacityRect(HDC hdc,CRect rect)  
    3. {  
    4.     CDC dc;  
    5.     dc.Attach(hdc);  
    6.   
    7.     CDC cdc;   
    8.     cdc.CreateCompatibleDC( &dc );  
    9.   
    10.     CBitmap bitmap, *pOldBitmap;  
    11.     bitmap.CreateCompatibleBitmap( &dc, rect.right, rect.bottom );  
    12.     CRect src( rect );  
    13.     src.OffsetRect( CSize( -rect.left, -rect.top ) );  
    14.     pOldBitmap = cdc.SelectObject( &bitmap );  
    15.     cdc.FillSolidRect( src, RGB( 0, 0, 0 ) ); //透明色  
    16.   
    17.     if( ::AlphaBlend == 0 )  
    18.     {  
    19.         dc.BitBlt( rect.left, rect.top, rect.right - rect.left, rect.bottom - rect.top, &cdc, src.left, src.top, SRCINVERT );  
    20.   
    21.     }else{  
    22.   
    23.         BLENDFUNCTION bf;      
    24.         memset( &bf, 0, sizeof( bf ) );  
    25.         bf.SourceConstantAlpha = 0x3f; //透明程度//值越大越不透明  
    26.         bf.BlendOp = AC_SRC_OVER;  
    27.   
    28.         ::AlphaBlend( dc.GetSafeHdc(), rect.left, rect.top, rect.right - rect.left, rect.bottom - rect.top,   
    29.             cdc.GetSafeHdc( ), src.left, src.top, src.right - src.left, src.bottom - src.top, bf );    
    30.     }  
    31.   
    32.     cdc.SelectObject( pOldBitmap );  
    33.   
    34.     dc.Detach();  
    35. }  

    http://blog.csdn.net/lee353086/article/details/38311421

  • 相关阅读:
    Nginx lingering_close延迟关闭
    Nginx 减少关闭连接的time_wait端口数量
    Tcp协议的keepalive功能
    Nginx 慢启动与拥塞窗口
    Nginx 优化缓冲区与传输效率
    linux 目录分类与文件操作
    Nginx 滑动窗口与缓冲区
    python 关键字yield
    模块与包
    面向对象
  • 原文地址:https://www.cnblogs.com/findumars/p/7635869.html
Copyright © 2011-2022 走看看