2009-10-02 7 views
0

다른 폼에있는 패널의 배경 이미지를 가져와야합니다. DX 응용 프로그램의 텍스처로 사용하고 있습니다. "CopyFromScreen"을 사용할 수 없습니다. 상단의 다른 컨트롤이 캡처 된 이미지에 포함됩니다. 어쩌면 한 가지 방법은 Panels Background 비트 맵을 메모리에 복사하여 다른 앱과 공유하는 것입니다. C#에서이를 수행하는 방법을 모릅니다. 또는 일부 GDI 방법이 있습니까?C#의 렌더링 패널 배경

미리 감사드립니다.

답변

0

objPanel.DrawToBitmap() 함수를 사용하면이 모든 것을 패널에 표시 할 수 있습니다.

+0

감사합니다. 그게 손톱이야. 그러나, 이것에 초보자의 조금으로, 나는 어떻게위원회에 렌더링 exe에 마샬링합니까? C++에서 비슷한 코드 예제를 많이 발견했지만 C# 예제를 찾을 수 없습니다. 나는 파괴적인 테스트를 한 후에 별도의 exe로 이것을 수행했다. exe가 단순히 렌더링을 중단했다는 것을 발견했다. 그러나 맞춤 패널의 모든 코드를 사용하면 메인 앱 및 미디어를 재생하는 다른 패널에 영향을 미쳤습니다. – user183185

+0

첫 번째 exe에서 친숙한 두 번째 응용 프로그램을 tempraroy 폴더에이 비트 맵을 저장할 수 있으며 두 번째 exe 해당 경로에서이 비트 맵을 선택합니다. 다른 응용 프로그램에 키를 보내는 방법을 볼 수 있습니다. http://stackoverflow.com/questions/732521/send-key-strokes-to-another-application-c – Firoz

+0

귀하의 도움에 감사드립니다. 결국 나는 C++의 오래된 비트를 필요한 MMF 메커니즘을 위해 C#으로 변환 할 수있었습니다. 파일을 사용하는 것이 너무 느립니다. 그것은 내가 필요로하는대로 작동합니다. 다시 한번, 모든 것을 thaks – user183185

0

Panel 컨트롤에 배경 이미지를 비트 맵 형식으로 반환 할 수있는 속성이 있는지 확인 했습니까?

+0

이 비트 맵은 프로세스에서 액세스 할 수 있어야합니다. 별도의 exe는이 패널의 표면에 DX를 렌더링합니다. Pseudo 투명도를 만들기 위해 DX exe에서 CopyFromScreen을 사용했으며 DX 텍스처로 사용되었습니다. 그러나 실수로 다른 컨트롤을 위쪽으로 끌면 exe가 캡처를 수행 할 때 렌더링 된 부분이 렌더링됩니다. 프로세스 전반에 걸쳐 패널 비트 맵을 가져 오는 방법이 있습니까? 아니면 맨 위에 다른 이미지를 가져 오지 않고 패널 비트 맵을 얻는 방법이 있습니까? – user183185