2012-04-19 8 views
0

CDCに配置された3つのビットマップを描画し、UpdateLayeredWindowに渡す単一のCDCを使用したいとします。私の問題は、UpdateLayeredWindow関数のSIZE* psizeパラメータを正しく取得できないことです。誰でも助けられますか?私は何をしますか?MFCの1つのデバイスコンテキストに複数のビットマップを描画する - winapi

BLENDFUNCTION bBlendFnc = { 
    AC_SRC_OVER, 
    0, 
    255, 
    AC_SRC_ALPHA 
}; 

CBitmap btCdcBuff; 
CBitmap* cache; 
BITMAP hbCdcBuff; 

btCdcBuff.CreateCompatibleBitmap(pCdcMain, szWndSize.cx, szWndSize.cy); btCdcBuff.GetBitmap(&hbCdcBuff); 

cache = pCdcMain->SelectObject(&btCdcBuff); // pCdcMain is a compatible CDC with the screen (pCdcScreen) 

Blend(&btIcon); // This function just creates a compatible CDC from a CPaintDC, selects the passed in CBitmap via SelectObject and AlphaBlends it to the pCdcMain. 
pCdcMain->SelectObject(cache); 

UpdateLayeredWindow(pCdcScreen, NULL, new CSize(hbCdcBuff.bmWidth, hbCdcBuff.bmHeight), pCdcMain, new CPoint(0, 0), 0, &bBlendFnc, ULW_ALPHA) // This fails and returns false 
+0

どのような機能に 'psize'パラメータがありますか?問題を明らかにする最小限のコードを表示し、問題の正確な部分を指摘してください。私たちは助けてくれるはずです。 –

+0

ここで何をしようとしているかを示すサンプルコードがあります。ありがとう。 – user965369

答えて

関連する問題