C++ DrawImage高度参数不工作

C++ DrawImage高度参数不工作,c++,winforms,visual-studio-2012,drawimage,C++,Winforms,Visual Studio 2012,Drawimage,我正在使用VS2012 c++/cli制作一个WinForms应用程序,并使用DrawImage显示从网络摄像头捕获的高清图像 这些图像是1920 x 1080位图,我正试图在面板控件上显示它们。面板为240 x 135(即,正好是高清图像的1/8) 我给DrawImage打电话如下: System::Drawing::Rectangle destRect = System::Drawing::Rectangle(0,0,Cam0Panel->Width,Cam0Panel->

我正在使用VS2012 c++/cli制作一个WinForms应用程序,并使用DrawImage显示从网络摄像头捕获的高清图像

这些图像是1920 x 1080位图,我正试图在面板控件上显示它们。面板为240 x 135(即,正好是高清图像的1/8)

我给DrawImage打电话如下:

    System::Drawing::Rectangle destRect = System::Drawing::Rectangle(0,0,Cam0Panel->Width,Cam0Panel->Height);
    g->DrawImage(b,destRect);
这应指定在面板上的相对0,0位置绘制图像,并将图像大小设置为240 x 135。但是,图像将不会显示

如果我更改Height参数以指定Panel->Bottom(这是app-~630中的绝对位置),图像确实会显示,并且宽度大小正确,但高度大小不正确

你知道我做错了什么,或者如何正确地调整和显示图像吗

下面是代码的完整版本

    void Cam0Panel_Paint( Object^ /*sender*/, System::Windows::Forms::PaintEventArgs^ e )
    {
        System::Drawing::Bitmap^ b = ImageWinArray[CHANNEL_SELECT0];
        Graphics^ g = e->Graphics;

        g->InterpolationMode = System::Drawing::Drawing2D::InterpolationMode::Bilinear;
        g->CompositingMode = System::Drawing::Drawing2D::CompositingMode::SourceCopy;
        System::Drawing::Rectangle destRect = System::Drawing::Rectangle(0,0,Cam0Panel->Width,Cam0Panel->Bottom);

        g->DrawImage(b,destRect);
    }

谢谢你的帮助。

我知道了。存储位图的数组已初始化,但初始化范围不够持久。因此,存储在数组中的引用可能会被垃圾清理。出于某种奇怪的原因,揭示这一点的唯一方法是drawimage调用中的垂直参数。更正初始化后,drawimage调用工作正常。

发生了什么?它使用的是什么高度而不是“右侧高度”?当高度指定为面板高度(即135)时,根本不显示任何内容。当我将高度指定为636(即窗口中的绝对位置)时,将显示图像,但未正确垂直调整大小。您的代码是正确的。它应该会起作用。如果您在(0,0)处使用而不是
destect
a
,您会得到什么?