StrechDIBits를 사용하여 레이블의 HDC에 원시 비트 맵 이미지를 그립니다.C++/CLI에서 전체 화면으로 돌아간 후 이미지 다시 칠하기
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);
이 방법은 전체 비디오 스트림을 그립니다. 또한 전체 화면을 구현하기 위해 전체 화면에 내 양식 및 레이블의 크기를 조정하는 기능도 있습니다. wchich는 비디오를 재생할 때도 훌륭하게 작동합니다.
하지만 동영상을 중지하거나 사진 한 장만 보내고 전체 scren 기능을 호출하면 그것은 이미지를 다시 칠하지 않을 것이고 그것은 나의 문제입니다. 페인트 이벤트를 사용하려고했는데 크기 조정 후 이미지를 다시 페인팅하기 위해 양식과 레이블 모두 이벤트 크기를 조정했지만 아무것도 작동하지 않았습니다. 전체 화면 또는 정상 크기로 돌아 오면 잠시 동안 이미지가 깜박 인 다음 컨트롤의 색상으로 다시 그려지고 사라집니다. StretchDIBits를 사용하여 페인팅 코드를 두어 보았습니다. 어떤 도움이나 조언도 정말 고맙습니다.
편집 : 나를 위해 슬픈 것은 내가의 그림 코드를 삽입 할 때, 예를 들어, 라벨의 이벤트를 클릭 것을, 그것은