Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/140.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在进入全屏并返回到C++/CLI_C++_Visual Studio_Visual C++_Repaint_Stretchdibits - Fatal编程技术网

C++ 在进入全屏并返回到C++/CLI

C++ 在进入全屏并返回到C++/CLI,c++,visual-studio,visual-c++,repaint,stretchdibits,C++,Visual Studio,Visual C++,Repaint,Stretchdibits,我正在构建应用程序,它使用StrechDIBits在标签的hdc上绘制原始位图图像 ptr = g->GetHdc(); dc = (HDC)ptr.ToInt32 (); SetStretchBltMode (dc, COLORONCOLOR); StretchDIBits (dc, 0, 0, (int) (LabelPictureShow->Width), (int) (LabelPictureShow->Height), 0, 0, width, height, dat

我正在构建应用程序,它使用StrechDIBits在标签的hdc上绘制原始位图图像

ptr = g->GetHdc();
dc = (HDC)ptr.ToInt32 ();
SetStretchBltMode (dc, COLORONCOLOR);
StretchDIBits (dc, 0, 0, (int) (LabelPictureShow->Width), (int) (LabelPictureShow->Height), 0, 0, width, height, data, bitmapInfo, DIB_RGB_COLORS, SRCCOPY);    
 g->ReleaseHdc (ptr);
通过这种方式,我画出了整个视频流,从一个视频流到另一个视频流,效果非常好。我也有功能,调整我的形式和标签在整个屏幕上实现全屏,这也是伟大的作品时,播放视频

但是,当我停止视频或只发送一张图片并调用完整的scren功能时。它不会重新绘制图像,这是我的问题。我试图使用绘画事件,调整大小事件的形式和标签绘画后的图像再次调整大小,但没有工作。当我全屏显示或恢复到正常大小时,我的图像会闪烁片刻,但随后会根据控件的颜色重新绘制并显示。我试着将带有StretchDIBits的绘画代码放在任何地方,但都不起作用。非常感谢您的帮助或建议


编辑:让我伤心的是,当我将绘制代码放入时,例如,单击标签事件,它工作正常…

通过使用其他项目中使用的自定义Paint Box控件解决。此控件使用重写OnPaint方法重新绘制图像。不知何故,这个解决方案是可行的,但以前几乎相同的解决方案却不行