none
Layered window 가려짐 문제 RRS feed

  • 질문

  • 하나의 MFC 다이얼로그에 두개의 자식윈도우를 만들었습니다.

    첫번째 윈도우는 WS_CHILD 속성만을 가지고 DX11로 비디오를 출력하는 윈도우입니다.

    두번째는 WS_EX_LAYERED | WS_EX_PALETTEWINDOW와 WS_CHILD 속성을 가지고 gdiplus로 문자를 출력하는 윈도우입니다.

    위의 두 자식윈도우는 겹쳐져있고 두번째 윈도우가 나중에 생성되었습니다.

    첫번째 자식윈도우에서 비디오를 출력하기 전까지는 두번째 윈도우에서 문자가 출력이 잘 됩니다.

    헌데 첫번째 자식윈도우에서 비디오를 출력을 하게 되면, 즉, dxgi::present 를 호출하여 백버퍼를 화면으로 출력할시에

    두번째 윈도우가 완전히 가려지게 됩니다.

    이렇게 되는 이유가 무엇이고, 두번째 윈도우가 가려지지 않게 할 방법이 없을까요?

    2019년 6월 27일 목요일 오전 10:45

답변

  • 찾았습니다.

    윈도우 속성에 WS_EX_TOPMOST를 주거나 SetWindowPos로 TOPMOST를 주었을시에는 의도와는 다르게 다른 자식윈도우에 가려지네요.

    그런데 SetWindowPos 로 HWND_TOP으로 조정하니깐 가려지지 않고 최상위에 위치하는 군요.

    방법은 찾았지만 좀 이상한데요. MS Docs만으로 이러한 행동을 추측할수가 있는 건가요?

    버그성이라 봐야 될련지요?

    • 답변으로 표시됨 kokokokrkrkr 2019년 6월 27일 목요일 오전 11:27
    2019년 6월 27일 목요일 오전 11:27