Windows Mobileプログラミング #06 ダイアログ・メニュー

 やはりというか、WindowsMobileの特有の作法にて苦戦中。
 いろいろWebにて検索しつつ、頑張ってます。
 まぁ、いくつかはまった部分があるので、覚え書…
 


●ダイアログ系 - 他アプリとのウインドウの切り替え
 WindowsMobileでは他アプリ・today表示を行った場合、自アプリは後ろに隠れなければならない。
 VisualStudio2005にてダイアログベースのアプリを作成した場合、デフォルトではtoday表示を行っても、後ろに隠れない。
 解決方法としては、ダイアログのスタイルを[ポップアップ]から[オーバーラップ]に変更することで、Today表示時に後ろに隠れることができます。

 理由はうまく説明できません。疑問に思った方は、ポップアップ・オーバーラップで検索かけてみてください。

●ダイアログ系 - OKボタンと×ボタン
 WindowsMobileの作法にて、アプリは自分で終了しないというのがあります。要は右上のボタンを押下しても、ウインドウが最小化されるだけで終了しない。アプリの終了はOSがアプリの起動数・メモリの残量を考慮しして決める、ということです。
 で、右上のボタンですが、2種類あり、OKボタンはアプリ終了、×ボタンは最小化となっているようで、ダイアログベースでアプリを作成した場合、右上のボタンはOKボタンとなるようです。SDIアプリを作成してみたところ、×ボタンとなりアプリは最小化されました。

 ※1 解決方法はまだ見つけられませんでした。SDIにダイアログを張り付けるのが手っ取り早いのかもしれません。

 ※2 どうも、MicrosoftはWindowsMobileのアプリはSDIを基準としているようです。ダイアログはアプリ上のサブ画面などを想定していて、ポップアップ画面として表示、でOKボタンで閉じる、を想定しているような。やはり、素直にSDIにしたほうがいいのか…

 ※3 ちなみに、WkTaskなどのタスク管理アプリは、ダイアログを閉じる際にOKボタンを押下したさいに発生するメッセージを終了させたいアプリに投げています。ですので、ダイアログアプリがOKボタンで終了しないようにOKボタンのハンドラをいじると閉じなくなってしまいます。


●メニュー系
 なかなか、チェック状態にすることができなかったので、サンプルソースを。
 結局、メニューのハンドルを取得する方法がよくわからなく、GetSubMenu等を使用しても右メニューが取得できなかったよう(チェック状態にすることができなかった)

01: HWND hMenu = SHFindMenuBar( m_hWnd);
02: TBBUTTONINFO tbbi = {0};
03: tbbi.cbSize   = sizeof(tbbi);
04: tbbi.dwMask  = TBIF_LPARAM | TBIF_BYINDEX;
05: ::SendMessage( hMenu, TB_GETBUTTONINFO,
06:             [0:左メニュー/1:右メニュー], (LPARAM)&tbbi);
07: HMENU   hMenu2 = (HMENU)tbbi.lParam;
08: CheckMenuItem( (HMENU)hMenu2, [ID番号],
09:             [MF_BYCOMMAND|MF_CHECKED / MF_BYCOMMAND|MF_UNCHECKED]);


6行目でメニューを指定してハンドルを取得、8〜9行目にてチェックをON/OFFする。
ちなみに、リソースエディタにてプロパティCheckedをTRUEにする必要はない。

テーマ:モバイル - ジャンル:コンピュータ


2008.03.30 | Comments(0) | Trackback(0) | Mobile プログラミング

コメント

コメントの投稿


秘密にする

«  | HOME |  »

無料ホームページ アフィリエイト レンタルサーバー FC2ブログ 転職

FC2カウンター

カレンダー

09 | 2008/10 | 11
- - - 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 -

プロフィール

じゅんたろー

Author:じゅんたろー
しがないプログラマーです。
模型(主にガンプラ)、デジタルガジェットいじり、車などやっています。
気まぐれなんで、更新はほどほどにやっていきます。

トラックバック

 

月刊アーカイブ

 

ブログ内検索

ブロとも申請フォーム

この人とブロともになる

カスタム検索