2012-11-29 2 views
0

프로젝트에서 타사 ActiveX 비디오 컨트롤을 사용하고 있습니다. 컨트롤은 네트 카메라를 가리킬 수 있고 비디오 스트림을 보여줍니다. 위대한 작품 ... 그건 내 문제가 아니야.ActiveX 컨트롤 위에 DrawImage를 사용할 수 없습니다.

내 문제는 그 컨트롤 위에 이미지를 그려 넣으려고하는 것이고, 모두 내 이미지는 ActiveX 컨트롤 뒤에 입니다. ActiveX 컨트롤은 현재 Windows 폼의 중간에 위치합니다.

protected override void OnPaint(PaintEventArgs e) 
    { 
     base.OnPaint(e); 

     e.Graphics.DrawImage(Properties.Resources.ProgressBar, new Point(300, 300)); 
    } 

내 이미지 형태로 그려 질 않습니다,하지만 액티브 뒤에 :이 같은 폼의 OnPaint를() 메소드를 오버라이드 (override)했다. 나는 (300,300)의 시작점을 사용하여 내 그래픽을 의도적으로 중앙에서 떼어내어 ActiveX가 그려진 부분이 엿 보이는 것을 볼 수있었습니다.

ActiveX 컨트롤 앞에 이미지를 넣을 수 있습니까?

답변

0

귀하의 질문은 "내 창에서 창을 그릴 때 그 자식 창이 내 그림 위에 그려지는 이유는 무엇입니까?"(ActiveX는 창없는 제어가 아니라고 가정합니다.) 가능성이 있습니다.

실제로 무엇을 성취하고 그에 따라 그려야하는지 생각해야합니다. 당신이 누군가 다른 사람의 창문에 그려야한다면 - 서브 클래스를 만들고 자신을 페인트하십시오. 이미지의 일부분 만 커버하면 다른 창을 만들어 다른 아이 위에 배치 할 수 있습니다.

+0

그래, 알겠습니다.
dave – davecove

+0

OnNewFrame 처리기에서 하위 클래스를 만든 다음 내 그림을 그립니다. OnPaint는 컨트롤에서 자주 호출되지 않고 다음 프레임이 내 이미지 (진행률 표시 줄)를 덮어 쓰므로 유용하지 않습니다. 하지만 OptimizedDoubleBuffer를 설정해도 심하게 깜박입니다. – davecove

관련 문제