2010-05-16 5 views
0

크기가 800x600 인 프로그램이 있습니다.화면 해상도 질문 VS2008 - C++ CLI

이 프로그램을 최대화하면 모든 요소 (버튼, 그림 상자)가 사용자 윈도우 화면 해상도에 따라 새 비율에 맞게 크기가 변경되도록 확장하려고합니다.

내가 접근하는 방법은 사용자의 화면 해상도와 수동으로 모든 크기를 변경하는 것입니다. 그리고 모든 일반적인 해상도에 대해 이렇게하십시오. 사용자가 희귀 한 해상도를 가지고 있다면 병이 너무 커지도록하십시오./최소화 버튼이 비활성화됩니다.

그러나 형태의 요소를 많이가, 여러 형태가 있습니다로이 아주 아주 많은 시간이 소요 될 것입니다 ..... 기본적으로

바로 가기가? 아마도 내장 된 기능이나 VS2008을위한 일종의 기능입니다.

이 문제를 해결할 수있는 방법은 무엇입니까?

+0

제목이 "C++ CLI"인 이유는 무엇입니까? –

+0

http://en.wikipedia.org/wiki/C%2B%2B/CLI VC++/CLI를 사용하여 VS2008을 사용하고 있습니다. – MrMcC

답변

0

거의 모든 Windows 프로그램에는 최대화 버튼이 있습니다. 따라서 이것은 분명히 공통적 인 문제이며 실제로 존재하는 해결책이 있습니다.

일반적으로 고정 해상도를 사용하지 마십시오. 작업 표시 줄에 불특정 다수의 공간이 필요하기 때문에 이것은 정말로 잃는 게임입니다. 모든 다른 사례를 열심히 계산 했더라도 Windows 8 용으로 다시 실행해야 할 것입니다.

대개 다른 컨트롤을 통해 "추가"공간을 분산시킵니다. 예를 들어 앱의 최소 크기가 800x600이기 때문에 1024x732 데스크톱의 추가 공간은 수평으로 224, 수직으로 132가됩니다. 메뉴 바는 이미 처리 방법을 알고있을 가능성이 높습니다. 추가 수평 공간의 100 % 및 수직 공간의 0 %를 차지합니다. 윈도우의 다른 컨트롤의 경우 유사한 백분율을 정의 할 수 있습니다. 종종 할당 된 비율은 0 % 및/또는 100 %입니다. WinForms에서는 Windows 레이아웃 엔진에이를 알려주기 만하면됩니다.

또한 컨트롤의 상대 위치 지정도 사용해야합니다. 예를 들어 창의 왼쪽에 확장 가능한 텍스트 편집기가 100 % 있고 오른쪽에 고정 버튼이있는 경우 오른쪽 가장자리를 기준으로 해당 버튼을 배치해야합니다. WinForms에서는 Anchor 속성을 통해이 작업을 수행 할 수 있습니다.