2012-12-09 2 views
3

창에서 DwmExtendFrameIntoClientArea을 호출 한 후에 Aero 모드를 유지하는 동안 어떻게 다시 끌 수 있습니까?DwmExtendFrameIntoClientArea를 어떻게 끌 수 있습니까?

모든 여백을 0으로 설정하여 DwmExtendFrameIntoClientArea를 호출하려했습니다. 이는 내 클라이언트 영역의 배경이 모두 검은 색이며 다시 그리기 아티팩트를 표시한다는 점을 제외하면 부분적으로 작동합니다.

Qt를 사용하고 있는데이 작업을 수행 한 후에 내 창에서 setAttribute(Qt::WA_TranslucentBackground, false)으로 전화를 걸지만 효과가없는 것으로 보입니다. 창 프레임을 재설정 한 후 클라이언트 영역을 올바르게 다시 그려 넣으려면 어떻게합니까?

답변

4

단순 실수 - 나는 또한

그래서, 절차가 확장 된 프레임을 해제 ... Qt는 실제로 윈도우를 그리는 것, 그래서 false로 Qt::WA_NoSystemBackground을 설정하는 데 필요한입니다 :

  • 전화 DwmExtendFrameIntoClientArea (오도 ​​된가?) 모든 여백을 0으로 설정하여
  • 윈도우에서 WA_TranslucentBackground = false를 설정하십시오.
  • 윈도우에서 (또는 Qt가 아닌 것과 마찬가지로) WA_NoSystemBackground = false를 설정하십시오.