내 응용 프로그램이 최대화되면 자동 숨기기 작업 표시줄이 나타나지 않습니다.

StackOverflow https://stackoverflow.com/questions/137005

  •  02-07-2019
  •  | 
  •  

문제

내 응용 프로그램은 자체 창 테두리와 장식을 모두 그립니다.내 응용 프로그램 창이 최대화되는 경우를 제외하고 자동 숨기기로 설정된 Windows 작업 표시줄에서는 잘 작동합니다.작업 표시줄이 "롤업"되지 않습니다.응용 프로그램이 최대화되지 않은 경우 화면 하단까지 크기가 조정된 경우에도 정상적으로 작동합니다.전체 디스플레이를 차지하도록 창 크기를 조정하면(최대화된 것처럼) 정상적으로 작동합니다.

도움이 되었습니까?

해결책

문제를 발견했습니다.내 애플리케이션은 WM_GETMINMAXINFO 메시지를 처리하고 있었고 매개변수 MINMAXINFO 레코드의 값을 재정의했습니다.레코드에 있는 값은 화면 픽셀 해상도의 7(테두리 너비)만큼 부풀려졌습니다.이는 최대화되면 창의 테두리를 화면의 보이는 부분 너머로 밀어낸다는 점에서 의미가 있습니다.또한 ptMaxPosition(최대화 시 창 원점이 설정되는 지점)을 -7, -7로 설정합니다.내 응용 프로그램은 이를 0,0으로 설정하고 최대 높이와 ​​너비를 정확히 화면 해상도 크기(팽창되지 않음)로 설정했습니다.왜 이런 일이 발생했는지 잘 모르겠습니다.선배가 쓴 거예요.해당 코드를 주석 처리하고 MINMAXINFO 구조를 수정하지 않으면 자동 숨기기가 작동합니다.

그 이유는 확실하지 않습니다."자동 숨김" 작업 표시줄 팝업 감지가 WM_NCMOUSEMOVE가 아닌 WM_MOUSEMOVE 메시지 처리 메커니즘에 연결될 수 있습니다.내 응용 프로그램이 화면 하단에 경계선을 최대화하여 WM_NCMOUSEMOVE 이벤트를 생성했을 것입니다.MINMAXINFO만 남겨두면 WM_MOUSEMOVE가 생성되었을 것입니다.

다른 팁

이는 '다른 Windows 위에 작업 표시 줄을 유지하는지 여부'에 따라 작업 표시 줄 속성에 따라 달라집니다. 확인하면 작업 표시 줄이 나타납니다.

그러나 귀하의 요구에 맞게 최종 사용자 기계 에서이 설정을 프로그래밍 방식으로 변경하려는 유혹을받지 마십시오. 무례하고 나쁜 연습으로 간주됩니다. 앱은 배포되는 환경에 맞는 모든 환경에 적합해야합니다.

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