|
답변 감사합니다.
제안 1 방법대로 OnPaint 함수에서 DShow 컨트롤을 다시 그리도록 지정했습니다.
오전 내내 관련 자료를 검색했는데, 상속하여 메시지 자체 처리를 변경하지 않고
폼의 배경을 그리게 하지 않는 방법이 없는 것 같네요. -_-;;;
Alpahblend, Transparent 를 지정해보기도 하였으나 실패하였습니다.
[code]
void __fastcall TForm4Control::PreviewWindowRepaint(TObject *Sender)
{
g_VMR9->Repaint(g_Form4Preview->Handle,GetDC(g_Form4Preview->Handle));
}
g_Form4Preview->OnPaint = PreviewWindowRepaint;
[/code]
장성호 님이 쓰신 글 :
: 제안1.
: OnPaint때 DX화면에서 출력을 한번더 해보세요
:
: 제안2.
: 모든 Form은 TCustomForm->TForm을 상속받아서 만들어지는것입니다.
: WM_PAINT부분을 오버라이딩 한다고 해서 화면에 출력이 아주 안되게 만들수는 없습니다.
:
: WM_PAINT및 WM_ERASEBKGND등의 메세지를 sub-classing해서 아무작업도 하지 않으면 될것입니다.
:
: 그럼..'
:
: 아제나 님이 쓰신 글 :
: : DSHow를 이용하여 동영상을 윈도우 핸들에 출력하고 있는데요.
: :
: : 동영상 출력 화면이 가렸다가 다시 출력되는 경우에 윈도우 폼의 REPAINT 기능 때문에 가려졌다가 다시 보여지는 부분이 다시 동영상 출력이 되는 것이 아니라 회색 폼이 보여지는군요.
: :
: : TForm을 상속해서 WM_PAINT 부분을 오버라이딩 하면 되겠지만, 귀찮고 (귀차니즘 때문에)
: : TForm->OnPaint = NULL; 해도 반응이 없군요. 얌얌
: :
: : 좋은 해결 방법이 없을까요?
|