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
どのような機能に 'psize'パラメータがありますか?問題を明らかにする最小限のコードを表示し、問題の正確な部分を指摘してください。私たちは助けてくれるはずです。 –
ここで何をしようとしているかを示すサンプルコードがあります。ありがとう。 – user965369