CImage::Draw 部分のメモ

//  AtlImage.h より

inline BOOL CImage::Draw(
  _In_ HDC hDestDC,
  _In_ int xDest,
  _In_ int yDest,
  …
{
  …
#if WINVER >= 0x0500
  if( ((m_iTransparentColor != -1) || (m_clrTransparentColor != (COLORREF)-1)) && IsTransparencySupported() ) {
    bResult = ::TransparentBlt( hDestDC, xDest, yDest, … , GetTransparentRGB() ) ;
    }
  else if( m_bHasAlphaChannel && IsTransparencySupported() ) {
    BLENDFUNCTION bf;
    bf.BlendOp = AC_SRC_OVER;
    bf.BlendFlags = 0;
    bf.SourceConstantAlpha = 0xff;
    bf.AlphaFormat = AC_SRC_ALPHA;
    bResult = ::AlphaBlend( hDestDC, xDest, yDest, … , bf) ;
    }
  else
#endif // WINVER >= 0x0500
  {
    bResult = ::StretchBlt( hDestDC, xDest, yDest, … , SRCCOPY) ;
    }
  …
  return( bResult );
  }

この投稿は役に立ちましたか? 役に立った 役に立たなかった 0 人中 0 人がこの 投稿 は役に立ったと言っています。

  にほんブログ村 IT技術ブログへ



コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください