2012-04-19 56 views
0

我想使用一個CDC,其中繪製3位圖,位於CDC,然後將它傳遞到UpdateLayeredWindow。我的問題是,我無法獲得UpdateLayeredWindow函數的SIZE* psize參數!誰可以幫忙?我該怎麼辦?在MFC中的一個設備上下文中繪製多個位圖 - 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參數是什麼函數?向我們展示一小段仍然可以證明問題的代碼,並指出您遇到問題的確切部分,我們將處於更好的位置。 – 2012-04-19 15:43:27

+0

有一些示例代碼演示了我在這裏嘗試做什麼。謝謝。 – user965369 2012-04-19 15:55:52

回答

相關問題