2009-04-20 4 views
2

縦型モードでしか動作しないWindows Mobileアプリケーション(C#で書かれています)があります。 Windows Mobileシステムの設定を変更しなくても、アプリケーションが自動的にアプリケーションをランドスケープモードに回転させないように、プログラムによって設定されていますか?Pocket-PCが横向きモードにならないようにする

プラットフォーム:組み込みデバイス上の本当に、本当に悪い考えであるのWindows Mobile 6.1 Professionalの

答えて

1

ない、とあった場合でも、それが伴うだろうフック、。

画面の向きを好きなものに変更することは明らかです詳細については、Developing Screen Orientation-Aware Applications - >Changing Screen Orientationを参照してください。

編集:あなたがC#/ .NETCFに悩まされていることが分かりました。フレームワークのその部分を知ってはいけませんが、私は参考のためにここに答えを残すでしょう、おそらくそれは正しい方向にあなたを指し示すでしょう。 tatの記事で説明されている概念は、もちろん有効です。

0

どのバージョンのWindows Mobileですか?

アプリケーションは、ハードウェアを制御できる制御されたユーザーグループ(社内アプリケーションなど)のみが使用する予定ですか?

Windows Mobileは、さまざまな画面サイズと向きをサポートしています。例えば、デバイスは、肖像画、正方形または風景のスクリーンを用いて設計することができる。ポートレートモードでのみ実行するように設計されているソフトウェアは、実行中のハードウェアを制御していないと問題を引き起こす可能性があります。

あなたはポートレートモードであることを全体のデバイスを設定します

SystemSettings.ScreenOrientation = ScreenOrientation.Angle0; 

この

を呼び出すことによって、あなたがそうすることができ、ポートレートモードを設定したい場合。これを先に進めることを選択した場合は、フォームでアクティブ化されたイベントのオリエンテーションを設定し、resizeイベントでオリエンテーションを確認することをお勧めします。これにより、誰かがランドスケープに変更された場合にアプリケーションにフォーカスが当てられたときにデバイスがポートレートにリセットされます。

アプリケーションの起動時に初期の向きを保存し、アプリケーションが終了したときにデバイスをこれに再設定すると便利な場合もあります。

+0

私はWindows Mobile 6.1 Professionalを使用しており、Pocket-PCでのみ使用されます。 – mrtaikandi

+0

オリエンテーションの変更後にアプリケーションが読み込まれた場合、あなたのソリューションは動作しますが、アプリがアクティブなときにオリエンテーションが変更されるとどうなりますか? – mrtaikandi

+0

@モハマドレザ - ユーザからの方向入力を変更する(フォームからナビゲートするなど)場合、アプリケーションがフォーカスを取得したときにフォーム起動イベントが発生します。私はまだ肖像画を使用するようにユーザーに強制すると、現実の世界で正しく機能しない可能性があると私は考えています。 – stevehipwell

4

これは悪い、悪い、悪い考えです。デバイスは、複数のアプリケーションを実行するための汎用デバイスです。プラットフォームはでなく、である必要があります。これは、デスクトップアプリケーションが640x480でしか動作しないため、他のPCをその解像度にロックすることができるはずです。

もっと良い解決策は、両方の向きをサポートするようにソフトウェアを実際に修正することです(そして、異なる解像度と四角形のデバイスがあることに気づいていますか?)サポートされていない解像度または方向が選択されたときの互換性についてユーザーに知らせるためのメッセージボックスをポップアップします。

「方法」については、できません。回転は、特にDRVESC_SETSCREENROTATIONを使用してExtEscapeを呼び出して、ディスプレイドライバによって処理されます。 PBと一緒に出荷される標準GPEFlat driverでは、これはDynRotateを呼び出してSetRotationを呼び出します(eval版のパブリックソースを見ることができます)。

これは、その呼び出しを傍受するためには、代替のディスプレイドライバを作成するか、あるいは、既存のドライバと同じドライバを挿入するシムを少なくとも作成する必要があります。どちらもマネージコードでは起こりません。

+0

これは良い考えではないことに同意しますが、画面の向きが変わるとサイズ変更イベントが発生します。私自身のアプリケーションでは、ユーザーがメニューから方向を素早く設定できるようにし、resizeイベントを使用して使用可能なメニュー項目を変更します。 – stevehipwell

+0

あなたのアプリケーションが特定の目的のために設計されている場合でも同意します。とにかく私は、Stevo3000が言及したSystemSettings.ScreenOrientationは良い選択だと思いますが、回転がイベントや何かのように起きたときにはいつか見つけられますか? – mrtaikandi

+0

「特定の目的のために設計された」とは、それがキオスクアプリケーションであり、それ以外は実行されないということを意味する場合、どのように方向が変わっているのでしょうか?一部のハードウェア割り込み(スライドアウトキーボードのような)の場合は、アプリケーションを回転させた向きにする必要があると私は依然として考えています。 – ctacke

関連する問題