質問

PocketPC用のアプリケーションを開発しています。アプリケーションが起動すると、画面を回転させるカスタム関数SetScreenOrientation(270)が呼び出されます。アプリケーションが関数を閉じると、画面の向きを復元するSetScreenOrientation(0)が呼び出されます。

この方法では、ユーザーがアプリケーションを最小化しても画面の向きが復元されず、これは受け入れられません。

誰が(どのイベントハンドラーで)SetScreenOrientation(int angle)を呼び出してアプリケーションの起動時に画面の向きを設定し、最小化で向きを復元し、最大化で向きを設定し、閉じるときに向きを復元する必要があるかを知っていますか?

実際には、どのイベントハンドラーが最小化イベントと最大化イベントを処理するのかわかりません。

役に立ちましたか?

解決

正しいメッセージは WM_SIZE ですが、Daeminの答えは間違ったWM_SIZEヘルプトピック。 wParamを確認してください。ウィンドウは最大化されていても非表示になっている可能性があるので注意してください。

他のヒント

Windows CEの経験から、 WM_SIZE または WM_WINDOWPOSCHANGED メッセージ。 PocketPCで作業している場合は、WM_SIZEに必要なパラメーターがあるかどうかわからないため、まずWM_WINDOWPOSCHANGEDメッセージを確認することをお勧めします。

WM_WINDOWPOSCHANGEDメッセージの WINDOWPOS 構造からフラグメンバー、特にSWP_SHOWWINDOWおよびSWP_HIDEWINDOW。


参照する必要があるメッセージの特定のバージョンは、使用しているオペレーティングシステムによって異なります。 Pocket PC OSはWindows CE 3.0(およびそれ以前)で構築され、Windows MobileはWindows CE 5.0(Windows Mobile 6でも)で構築されていますが、Windows CE 4でも構築されています。(ソース)

だから、あなたが書いているOSのためにMSDNの関連セクションの下を見てください。

これらがC ++の世界で何と呼ばれているのかわかりませんが、.NET Compact Frameworkでは、ウィンドウを最小化/最大化するときにアプリケーションフォームのResizeイベントが呼び出され、イベントコードでWindowStateをチェックしますフォームのプロパティを使用して、最小化されているのか、または縮小されているのかを確認します。

PDAの状態をアプリケーション内から変更するのは危険です(それを行うには多くの正当な理由がありますが)。なぜなら、アプリがクラッシュした場合、PDAはどのような状態のままになるからです。 Windows Mobileの多くのキオスク型(フルスクリーン)アプリ。これを効果的に行うための秘oneの1つは、WMタイトルバー(Windowsスタートボタンのある一番上の行)を非表示にして、分割のために点滅しないようにすることです新しいフォームを開くたびに2番目。アプリがクラッシュした場合、デバイスをリセットするまでウィンドウバーは表示されませんが、これは良くありません。少なくとも画面の回転があれば、ユーザーは手動で復元できます。

プラットフォームに依存しますが、WM_WINDOWPOSCHANGEDまたはOnShowを使用します。 wm_sizeではありません。すべてのプラットフォームで常にスローされるとは限りません。カシオは、期待するサイズのイベントをスローしません。 TDSとSymbolの機能。

MSDNは情報源として優れていますが、すべてのOSが同等に作成されているわけではないことに注意してください。 PPCの世界では、ハードウェアプロバイダーは独自のOSを作成し、場合によっては見落としが生じたり、意図的に無視したりします。

ここには、左ボタンと右ボタンを備えたプラットフォーム(名前は保護のために保留されています...まあ私)があります。それらを押すと、VK_LEFT、VK_RIGHTをキャッチできるはずです。 d間違っている。実際に ';'を取得しますまたは「:」。ズボンを蹴るのはどうですか。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top