문제

나는 Direct3D 애플리케이션을 작성하고 있으며, 꺼져있을 때에도 발생하는 반 알리 아스와 같은 이상한 버그를 알아 차리고 마우스 포인터가 그 자체와 동일한 좌표를 가진 물건에 줄을 서지 않아도 너비와 높이를 창출 할 때 너비와 높이를 발견했다는 것을 발견했습니다. 매개 변수에는 테두리가 포함됩니다. 이 프로그램은 800x600 그래픽 출력을 같은 크기의 창으로 렌더링하고 있었지만 경계로 인해 792x566 사각형으로 낭비되었습니다. 보상하기 위해 창의 크기를 늘 렸지만 시스템이 표준 XP 스타일 인 테두리 스타일을 사용하는 경우 작동하지 않습니다. (예 : 클래식 스타일)

창을 만들기 전에 테두리 너비와 높이가 무엇인지 알 수있는 방법이 있습니까?

도움이 되었습니까?

해결책

GetSystemMetrics 함수를 찾고있는 것 같습니다. 예를 들어, 픽셀의 테두리 너비는

GetSystemMetrics(SM_CXBORDER)

추가 : 총 크기의 경우 경계, 프레임 크기, 제목 바 등의 비 클리어 영역의 다양한 "조각"을 추가해야합니다.

다른 팁

또 다른 옵션은 D3D 표면이 클라이언트 사각형 크기와 동일한 크기인지 확인하는 것입니다.getClientRect ()). 그러면 적절한 크기로 렌더링하고 메뉴, 경계 등의 너비에 대해 전혀 걱정할 필요가 없습니다.

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