AlphaBlend()について

[戻る]
gg 2008/07/05(土) 10:59:18
gg 2008/07/01(火) 12:18:25

いつもお世話になっています、ggです。

以下のように表示しています

View::OnDraw(CDC* pDC){
 imgOriginal1.StretchBlt(*pDC, ...);//Imageクラス使用

 CDC  dcMem;
 dcMem.CreateCompatibleDC(pDC);
 CBitmap *pOldBitmap  =  dcMem.SelectObject(&m_bitmap);
  pDC->BitBlt(…);

 imgOriginal1.AlphaBlend(dcMem, 
             rectT.left ,rectT.top, 
             rectT.right, rectT.bottom,  
             0,0,ScrWH.x, ScrWH.y,
             55, 
             AC_SRC_OVER); 

}

質問:
透過度(55)を固定したいのですが、どうしたらいいでしょうか。
今の状態だと、
一回目の描画はm_bitmapの色(黄色)です、まったく透過していない、
描画の数によって、自動的にだんだん透明度高くなりました。

目的としては、最初表示するときにある透過にして欲しいです。
後その透過度を調整して、ずっと使います。

BLENDFUNCTION m_bf; // AlphaBlend function parameter
という構造体があるのですが、Imageクラス使用の場合、
どう使いますか。
(55, AC_SRC_OVER)は既に引く数になっています。



よろしくお願いします。

環境:.Net2002 XP

gg 2008/07/07(月) 11:29:11
[[解決]]
自己で解決しました。

imgOriginal1.AlphaBlend()の55は
BLENDFUNCTION のSourceConstantAlphaメンバーです。

::AlphaBlend()へ変更して、うまく描画できました。

すみませんでした。

古いスレッドには追加発言できません。