如何在VC ++中将图像放置在优化校准的特定位置

时间:2012-12-01 12:01:17

标签: c++ windows winapi win32gui win32-process

我试图在实时视频上叠加图像。使用的IDE是Visual Studio Professional 2010.代码是用C ++开发的。当我尝试在实时视频上叠加图像时,我使用句柄加载图像即

                           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机制将图像叠加到视频上。我遇到的问题是,图像连续五次叠加到视频上。

我传递了一个放在rc文件对话框中的图片控件的ID,以加载实时视频并显示它。我没有在代码中使用任何MFC。视频使用Direct 2D机制进行渲染

视频分辨率为640 * 480,位图图像分辨率为128 * 128。如果我拍摄此位图,视频将在视频上生成五次叠加图像..

我使用GetWindowRect()和ScreentoClient()得到了对话框的坐标。但我想要Picture控件的坐标。

我有以下怀疑:

如何获取图片控件的坐标???

如何将图像放置在图片控件中的特定位置???

期待最早的积极回应...


此致

的Vivek

1 个答案:

答案 0 :(得分:0)

您可以使用以下功能来检索图片控件的手柄:

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

通过检索其手柄,您可以获得其他信息,例如其位置,大小和

::GetWindowRect(hWnd, &rc)

如果您通过某些API调用(例如StretchBlt)覆盖图像,则可以将其放在任何您想要的位置。