2011-05-02 2 views
0

김프에서 대화 상자가 열렸을 때 상위 창이 비활성화되지 않은 것으로 나타났습니다. 자식 윈도우가 앞에 오면 부모 윈도우를 계속 사용할 수 있습니다. 같은 일을하고 싶습니다. 부모 창을 클릭하면 부모가 앞쪽으로 오도록 어린이를 뒤로 밀어냅니다.플로팅/항상 위의 대화 상자

Qt QDialog 's를 사용하고 있지만 플랫폼 고유 코드를 사용하여이 작업을 수행하게되어 기쁩니다. http://msdn.microsoft.com/en-us/library/ff700543(v=vs.85).aspx

을하지만 아무것도 난 후 무엇을 할 것 같다 :

여기 찾고 있었어요. 내 계정에 HWND_TOPMOST 때 포커스를 잃을 때 내 응용 프로그램이 포커스를 받으면 다음이 메시지 상자로 가장 이상적인 창 뒤에 푸시되고 있습니다. 예.

SetWindowPos(winId(), stayOnTop ? HWND_TOPMOST : HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOACTIVATE); 

답변

3

내 대화 상자에서 부모님 설정을 올바르게 수행하지 않은 것처럼 보입니다! 그것은 부모 대화/메인 창에 부모 역할을해야만 다음 작동합니다.

1

당신은 Qt::WindowStaysOnTopHint 플래그를 포함 setWindowFlags()를 호출해야합니다.

+0

하지만 모든 창 위에 표시됩니다. 나는 그것을 부모의 꼭대기에두고 싶다. 여기에서 논의 된 것처럼 : http://www.qtcentre.org/threads/15464-WindowStaysOnTopHint – SupaGu

+0

네, 오해했습니다. 나는 일단 부모님이 옳다고 생각한 적이 있습니다. 왜냐하면 일단 당신이 말한대로해야 할 일이 없기 때문입니다. –