2009-04-20 2 views
2

세로 모드에서만 작동하는 Windows Mobile 응용 프로그램 (C#으로 작성)이 있습니다. Windows Mobile 시스템 설정을 변경하지 않고도 응용 프로그램이 내 응용 프로그램을 가로 모드로 자동 회전하지 못하도록 프로그래밍 방식으로 있습니까?Pocket-PC가 가로 모드가되지 않도록하십시오.

플랫폼 : 임베디드 장치에 정말, 정말 나쁜 생각입니다 윈도우 모바일 6.1 프로페셔널

답변

1

아니, 거기하더라도이 포함 것이다 후크.

그러나 은 화면 방향을 원하는대로 변경할 수 있습니다. 사용자가 원하는 것을 분명히 알고 있기 때문입니다. 자세한 내용은 Developing Screen Orientation-Aware Applications ->Changing Screen Orientation을 참조하십시오.

편집 : C#/.NETCF에 익숙하지 않다는 것을 깨달았습니다. 프레임 워크의 일부분을 모르지만 여기에 대한 답을 참고 용으로 남겨 두겠다. 아마도 올바른 방향으로 가리킬 것이다. tat 기사에서 설명 된 개념은 물론 유효합니다.

0

Windows 모바일의 버전은 무엇입니까?

응용 프로그램은 하드웨어를 제어 할 수있는 통제 된 사용자 그룹 (예 : 내부 회사 응용 프로그램)에서만 사용됩니까?

Windows Mobile은 다양한 화면 크기와 방향을 지원합니다. 예를 들어, 장치는 세로, 정사각형 또는 가로 화면으로 디자인 될 수 있습니다. 세로 모드에서만 실행되도록 설계된 소프트웨어는 실행중인 하드웨어를 제어하지 않는 경우 문제를 일으킬 수 있습니다.

당신이 세로 모드로 전체 장치를 설정합니다

SystemSettings.ScreenOrientation = ScreenOrientation.Angle0; 

를 호출하여 그렇게 할 수있는 세로 모드를 설정하려는 경우. 이걸 진행하기로 결정했다면 폼 활성화 이벤트에서 방향을 설정하고 크기 조정 이벤트의 방향을 확인하는 것이 좋습니다. 다른 사람이 가로로 변경하면 응용 프로그램에 포커스가 있으면 장치가 다시 세로로 재설정됩니다.

응용 프로그램이 시작될 때 초기 방향을 저장하고 응용 프로그램이 종료 될 때 장치를 다시 설정하는 것이 유용 할 수 있습니다.

+0

필자는 Windows Mobile 6.1 Professional을 사용하며 Pocket-PC에서만 사용됩니다. – mrtaikandi

+0

오리엔테이션 변경 후 응용 프로그램이로드되면 솔루션이 작동하지만 내 응용 프로그램이 활성 상태 일 때 오리엔테이션이 변경되면 어떻게됩니까? – mrtaikandi

+0

@Mohammadreza - 사용자의 방향 입력을 변경하는 경우 (예 : 양식에서 탐색하는 경우) 양식 활성화 이벤트는 애플리케이션에 포커스가 발생하면 실행됩니다. 나는 여전히 사용자가 초상화를 사용하도록 강요하는 것이 현실 세계에서 올바르게 작동하지 않을 것이라고 생각한다. – stevehipwell

4

이것은 나쁨, 나쁨, 나쁜 생각입니다. 이 장치는 여러 응용 프로그램을 실행하기위한 범용 장치입니다. 플랫폼은 이 아니어야합니다.은 애플리케이션의 종속 장치 여야합니다. 이는 640x480에서만 실행되는 데스크톱 응용 프로그램을 가지고 있다고 말하면서 누군가의 PC를 해당 해상도로 고정시킬 수 있어야합니다.

더 나은 해결책은 두 방향을 모두 지원하도록 소프트웨어를 실제로 수정하는 것입니다 (그리고 사각형 화면 장치뿐 아니라 다른 해상도도 있음을 알고 있습니까?). 지원되지 않는 해상도 또는 방향이 선택되었을 때 사용자에게 호환성에 대해 알리기 위해 일종의 메시지 상자를 팝업합니다.

"방법"에 관해서는 - 당신은 할 수 없습니다. 회전은 디스플레이 드라이버에 의해 처리되며 특히 DRVESC_SETSCREENROTATION을 사용하여 ExtEscape을 호출하면됩니다. PB와 함께 제공되는 GPEFlat driver 표준에서는 차례로 DynRotate를 호출하고 SetRotation을 호출합니다 (eval 에디션의 공용 소스는 실제로 어떻게 작동하는지 알고 싶어합니다).

부족한 점은 해당 호출을 가로 채기 위해 교체 디스플레이 드라이버를 만들거나 또는 기존의 드라이버를 호출하는 드라이버로 삽입하는 것이어야한다는 것입니다. 이들 중 어느 것도 관리 코드에서 발생하지 않습니다.

+0

이것은 나쁜 생각이지만, 화면 방향이 바뀌면 크기 조정 이벤트가 발생합니다. 내 자신의 응용 프로그램에서는 사용자가 메뉴에서 방향을 빠르게 설정할 수있게하고 resize 이벤트를 사용하여 사용 가능한 메뉴 항목을 변경합니다. – stevehipwell

+0

귀하의 신청서가 특정 목적을 위해 설계된 경우에도 동의합니다. 어쨌든 나는 Stevo3000이 언급 한 SystemSettings.ScreenOrientation이 좋은 선택이라고 생각하지만 어쨌든 이벤트 나 무언가와 같은 회전이 언제 일어 났는지 알아 내야 할 것입니까? – mrtaikandi

+0

"특정 용도로 설계된"경우 키오스크 앱이고 다른 것은 실행되지 않는다는 것을 의미하는 경우 방향이 어떻게 바뀌고 있습니까? 일부 하드웨어 인터럽트 (예 : 슬라이드 아웃 키보드)에서 나온 경우 앱을 회전 된 방향으로 지원해야한다고 계속 주장합니다. – ctacke