2011-08-12 8 views
4

전체 데스크톱을 다루는 캡션없는 창을 만들고 싶지만 작업 표시 줄은 여전히 ​​보여줍니다. 이 작업을 수행하는 가장 좋은 방법은 무엇입니까?전체 화면이지만 작업 표시 줄을 표시하는 방법

작업 표시 줄의 위치를 ​​감지하고이를 제외하도록 창의 크기를 조정할 수 있지만 사용자가 작업 표시 줄의 크기/위치를 변경할 때를 알아야합니다.

또는 Windows 스타일 막대 또는 내 창을 항상 작업 표시 줄 뒤에 있는지 확인하는 다른 방법이 있습니까?

+1

창이 최대화되지 않는 이유가 있습니까? – Justin

+0

WM_GETMINMAXINFO에 응답하고 조심스럽게 위치를 계산하여 창 캡션과 테두리가 모니터 영역 바깥에 정확하게 놓이고 작업 표시 줄에 의해 겹쳐 지도록하십시오. 여러 모니터에서 잘 작동하는 일반적인 경우는 없으며 같은 크기 일 필요는 없으며 그 중 하나만 작업 표시 줄을 표시합니다. –

+0

Windows는 작업 표시 줄을 캡션이있는 창 뒤에 자동으로 배치합니다 (정확한 기준은 확실하지 않지만 WS_OVERLAPPEDWINDOW). 최대 창 크기가 있으므로 캡션이있는 창을 만들 수없고 캡션/테두리가 표시되지 않도록 오프셋 할 수 있습니다. 현재의 생각은 WS_OVERLAPPEDWINDOW로 진행하는 것이지만 WM_NCCALCSIZE를 처리하면 캡션/etc가 존재하지 않게됩니다. 지금 노력하고있어. – tenfour

답변

3

SystemParametersInfo의 반환 값을 사용하여 창 배치를 설정하고 SPI_GETWORKAREA를 매개 변수로 전달하십시오.

기본 디스플레이 모니터에서 작업 영역의 크기를 검색합니다. 작업 영역은 시스템 작업 표시 줄이나 응용 프로그램 데스크톱 도구 모음에 의해 가려지지 않는 화면 부분입니다. pvParam 매개 변수는 가상 화면 좌표로 표현 된 작업 영역 영역의 좌표를 수신하는 RECT 구조를 가리 키도록 이어야합니다.

3

캡션/경계가없는 창을 최대화하십시오.

+0

+1 이것은 매우 간단하며 꼭 필요한 것입니다. –

+0

안타깝게도이 모니터는 전체 모니터가 아니라 하나의 모니터만을 대상으로합니다. 그것이 작동 할 수 있으면 좋겠 - 우아한 생각. – tenfour

+1

테두리 및 캡션을 다시 만들지 않고 창에서 제거 할 수 없다는 사소한 세부 사항 이외. 글쎄, 그건 사소한 것이 아닙니다. –

관련 문제