문제

a를 만들 수있는 방법이 있습니까? 모듈이 없습니다 C ++ MFC의 대화 상자는 항상 응용 프로그램의 다른 창 위에 머무는가? Visual Studio 2005의 찾기 대화 상자와 같은 생각을하고 있습니다. 여기서 맨 위에 머무르고 있지만 여전히 기본 텍스트를 편집 할 수 있습니다.

(차이가있는 경우 MDI가 아닙니다. 대화 상자 기반 앱입니다)

도움이 되었습니까?

해결책

에서 니쉬:

대화 상자를 유지합니다

"항상 스테이-온 탑"옵션이있는 프로그램을 보지 못했습니까? 믿을 수없는 것은 한 줄의 코드로 대화 상자를 유지할 수 있다는 것입니다. 대화 상자 클래스의 oninitdialog () 함수에 다음 줄을 넣으십시오.

SetWindowPos(&this->wndTopMost,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE);

기본적으로 우리가하는 일은 SetWindowpos 함수를 사용하여 대화 상자 창의 z- 주문을 변경하는 것입니다. 우리는 대화 상자를 Z-Order의 상단으로 옮겨 다른 모든 창문 위에 머물러 있습니다. 이제 다른 창을 활성화하더라도 창문이 맨 위에 머무를 것입니다. 그러나 나는 당신이 이것을 할 때 당신이 무엇을하고 있는지 정확히 알 수 있도록 조언 할 것입니다. 사람들이 그렇게하고 싶을 때 창문을 얻을 수 없다면 사람들이 귀찮게 할 수 있기 때문입니다.

의견에서 언급했듯이 위의 줄은 창을 모든 응용 프로그램 위에 놓습니다. 해야 할 일이 필요합니다

SetWindowPos(&this->wndTop,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE);

창문을 응용 프로그램 만 위에 놓으십시오.

-아담

다른 팁

허용 된 답변은 Windows 7 이상에 실패합니다. (또는 아마도 나) 그러나 모드리스 대화 상자를 어린이 대신 팝업으로 만드는 것은 그것을 해결합니다. 이제 WRT 메인 대화 상자 창을 배치하지만 어디서나 제한하기 위해 코드를 작성할 수 있습니다. No 테두리 또는 상단 막대를 사용하면 간단한 창이됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top