2011-10-03 5 views
0

Visual Studio 2010 Express Edition에서 C++/cli를 사용하고 있습니다.아직 클릭 메시지를 허용하는 보이지 않는 창 패널을 만듭니다.

내가하고 싶은 일은 보이지 않지만 아직 클릭 및 더블 클릭 메시지 및 기타 마우스 입력을 허용/수신하는 패널을 만드는 것입니다. 컨트롤 가시성을 FALSE로 설정하면 마우스 입력이 비활성화됩니다.

나는 페인트 메시지를 얻고 아무 것도하지 않고 (다른 소스에서 제안했듯이) 패널을 단순히 그리지는 않지만 보이지 않게 만들려고 시도했지만 패널은 여전히 ​​그림처럼 보입니다.

패널에 그림을 그렸음을 윈도우에 알리기 위해 페인트 메시지에서 무엇을해야합니까?

내 패널 그리기 기능은 다음과 같습니다 내가 도움이 될 것입니다 그 다음이를 얻을 수있는 방법에 대한 다른 제안이있는 경우

private: System::Void panel1_Paint(System::Object^ sender, System::Windows::Forms::PaintEventArgs^ e) { 
     } 

.

+2

보이지 않는 컨트롤하여 초점과되지 않은 키보드 또는 마우스 이벤트를받을 수 없습니다. Panel 클래스는 포커스를 받도록 설계되지 않았으므로 사용자에게 포커스가 있음을 보여줄 방법이 없습니다. 당신은 * 정말로 * 성취하려고 노력하고 있습니까? –

답변

0

결국이 아이디어를 모두 없앴습니다. 문제는 NativeWindow 클래스에서 "상위"였던 창에서 마우스 입력을받는 방법을 얻는 것이 었습니다. 이것은 내가 메시지 (자식 창)를받을 것으로 예상했던 창이 메시지를받지 못했다는 것을 의미했습니다.

메시지를 받으려면 상위 NativeWindow 클래스의 이벤트 처리기를 재정의해야합니다. 나는 해결책을 어디서 얻었 여기 이벤트를이입니다 처리 할 수 ​​

http://msdn.microsoft.com/en-us/library/system.windows.forms.nativewindow.createhandle.aspx

관련 문제