1

MFC 経由で Wi​​ndows Mobile 6 の CDialog ベースのアプリケーションでソフトキーを使用するにはどうすればよいですか?

私が作業している CDialog ベースの Windows Mobile 6 (タッチスクリーン) Professional アプリがあります。

WM6 Professional の CDialog ベースのアプリの既定の動作は、既定ではソフトキーを使用しないことです... IDOK と IDCANCEL をメイン ダイアログ クラスに送信する "キャンセル" と "OK" 機能にソフトキーをマップしたいと考えています。

私は幸運にも CCommandBar を操作しようとしましたが、SHCreateMenuBar もうまくいきませんでした。

これを機能させる方法のサンプルはありますか?

4

2 に答える 2

2

CCommandBar で「機能しない」のは何ですか? CCommandBar メンバーをダイアログ クラスに追加できるはずです。次に、DIAlog の InitDialog で、コマンド バーで Create と InsertMenuBar を呼び出します。次のようになります。

m_cmdBar.Create(this);
m_cmdBar.InsertMenuBar(IDR_MENU_RESRC_ID);

メニュー リソースは次のようになります。

IDR_MENU_RESRC_ID MENU DISCARDABLE
BEGIN
MENUITEM "OK", IDOK
MENUITEM "Cancel", IDCANCEL
END
于 2008-09-19T23:39:18.827 に答える
0

どうもありがとう...私はこれに夢中になっていた...

あなたのコードは期待どおりに機能しました...

最初はそれを使用しましたが、同じ結果が得られました.SIP入力ボタンを除いて、ソフトキー領域は空白になります。

1時間ほどのデバッグの後、これらの2行のコードをOnInitDIalog()のENDに配置しようとしましたが、うまくいきました:)

私の問題は、私の OnIitDialog() でいくつかの子ダイアログを作成していることです。子ダイアログを作成する前に CCommandBar.InsertMenuBar() を配置すると、「OK」または「キャンセル」のソフトキーが表示されません。子ダイアログの作成後にその行を配置すると、ソフトキーは期待どおりに表示され、うまく機能します。

再度、感謝します

于 2008-09-20T04:23:49.953 に答える