2012-12-01 50 views
0

我試圖在實時視頻上疊加圖片。使用的IDE是Visual Studio Professional 2010。代碼是用C++開發的。當我嘗試覆蓋圖像上的實況視頻,我使用手柄加載圖像,即如何將圖片放置在VC++的圖片控件的特定位置

      HANDLE hBitmap;    

     hBitmap = LoadImage(NULL, L"C:\\Users\\User\\Documents\\Visual Studio 2010\\Projects\\BMP_Image.bmp",IMAGE_BITMAP, 0,0, LR_LOADFROMFILE); 

我使用Alpha Blending的機制將圖像疊加到視頻上。我遇到的問題是,圖像連續五次疊加到視頻上。

我傳遞一個圖片控件的ID,放在rc文件的對話框中,加載實況視頻並顯示它。我沒有在代碼中使用任何MFC。該視頻使用Direct 2D機制進行渲染

視頻分辨率爲640 * 480,位圖圖像分辨率爲128 * 128。如果我把這個位圖,視頻將產生五倍的覆蓋圖像的視頻..

我得到了使用GetWindowRect()和ScreentoClient()對話框的座標。但我想要Picture控件的座標。

我有以下疑點:

如何獲得圖片控件的座標???

如何將圖像放置在圖片控件中的特定位置?

期待烏拉圭回合作爲最早的積極響應......


問候,

維韋克

回答

0

您可以使用下面的函數程序來檢索您的圖片控件的句柄:

::GetDlgItem(hWnd of your dialog, Id of your picture control) 

通過撤回其手柄,您可以到達其他呃喜歡它的位置,大小的信息和

::GetWindowRect(hWnd, &rc) 

如果疊加通過一些API調用,如StretchBlt的圖像,你可以把它放在任何你想要的。