3,579 バイト追加
、 2020年2月15日 (土) 07:36
==Windows Mobile ダイアログベースのMFCアプリケーション作成==
[Windows Mobile][Visual Studio 2005]
===プロジェクトの作成===
====新規作成-プロジェクト から、MFCスマートデバイスアプリケーションを選ぶ====
[[File:1367_wmapp01.jpg]]
====ウィザードで、Windows Mobile 6 Standard SDKを選択====
[[File:1368_wmapp02.jpg]]
====ダイアログベースで====
[[File:1369_wmapp03.jpg]]
====タイトルを設定====
[[File:1370_wmapp04.jpg]]
===アプリの作成===
====メニューの作成====
=====新規にメニューを追加=====
もともと、存在している、IDR_MAINFRAME メニューはいくら修正しても、なにもおこらないので、新規にIDR_MENUを追加し、メニューを作成。ダイアログ cpp ファイルの、OnInitDialog 関数内の、dlgCommandBar.InsertMenuBarの引数を変更したら、メニューが表示されるようになった。
[[File:1358_wmapp_mnu01.jpg]]
BOOL CindcalcDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// このダイアログのアイコンを設定します。アプリケーションのメイン ウィンドウがダイアログでない場合、
// Framework は、この設定を自動的に行います。
SetIcon(m_hIcon, TRUE); // 大きいアイコンの設定
SetIcon(m_hIcon, FALSE); // 小さいアイコンの設定
if (!m_dlgCommandBar.Create(this) ||
!m_dlgCommandBar.InsertMenuBar(IDR_MENU /* IDR_MAINFRAME */))
{
TRACE0("CommandBar の作成に失敗しました\n");
return FALSE; // 作成できませんでした。
:
=====実行させてみたところ=====
メニューでた。
[[File:1360_wmapp_mnu03.jpg]]
====メニューの実装====
=====メニューにイベントハンドラを追加する。=====
コンテキストメニューから、以下を選択。
[[File:1361_wmapp_proc01.jpg]]
ハンドラを追加する対象を選択する(ダイアログに追加する)
[[File:1362_wmapp_proc02.jpg]]
自動で関数が作成され、編集可能になるので、処理を追加する。
====ダイアログのコントロールの実装====
=====コントロールを貼り付けて、コンテキストメニューから、変数の追加を行う=====
[[File:1363_wmapp_proc03.jpg]]
=====ダイアログのメンバー変数として、コントロールを管理できるようになる=====
[[File:1364_wmapp_proc04.jpg]]
====エンターキーの対応====
ダイアログベースなので、Enterキーを押すと、画面が閉じてしまう。CDialog::PreTranslateMessage 関数をオーバーライドして、Enterキー押下時の処理をフックする。
ダイアログのプロパティから、オーバーライドアイコンを押下状態にし、PreTranslateMessageをオーバーライド
[[File:1365_wmapp_proc05.jpg]]
BOOL CindcalcDlg::PreTranslateMessage(MSG* pMsg)
{
// TODO: ここに特定なコードを追加するか、もしくは基本クラスを呼び出してください。
if(pMsg->message == WM_KEYDOWN) {
switch(pMsg->wParam) {
case VK_RETURN:
OnAnswer(); // Enterキー押下で、呼び出す処理。
return TRUE;
default:
break;
}
}
return CDialog::PreTranslateMessage(pMsg);
}
=====[http://typea.info/blg/glob/2009/03/windows_mobile.html 処理クラスを追加]して起動=====
動いた。
[[File:1366_wmapp_proc06.jpg]]