Visual Studio Class Wizard を使用してコマンドを追加する方法
Visual Studio でプロジェクトを開き、上部のメニューで次の場所に移動します。
- プロジェクト>クラスウィザード
- プロジェクトとクラス名を選択します(あなたの場合
CTestHarnessDlg
)
Commands
検索フィールドのタブで、編集 ID を入力します。
- それを選択すると、呼び出された ListBox に
Messages
そのコントロールからのすべてのメッセージが入力されます。
- 任意の名前を選択
EN_SETFOCUS
して押しAdd Handler
て入力するか、デフォルトのままにしておきます
- 次に、[OK] を押すか
Edit Code
、メソッドの実装がすぐそこにあるはずです
- すべてがクラス ウィザードによって自動的に設定および作成される必要があります: メソッド宣言、メソッド実装、メッセージ マップ
コマンドを手動で追加する方法
クラス宣言 (通常は .h ファイル内) に移動し、メソッド宣言を追加します。追加する必要がある関数の型を知る必要があります。
afx_msg void OnSetfocusEdit();
メッセージ マップ (通常は cpp ファイル内) に移動し、マッピングを追加します。使用する必要があるマクロを知る必要があります。この場合は ON_EN_SETFOCUS です。
ON_EN_SETFOCUS(IDC_YOUR_EDIT_ID, &CTestHarnessDlg::OnSetfocusEdit)
cpp (通常は cpp ファイル内) に移動し、メソッドの実装を追加します
void CTestHarnessDlg::OnSetfocusEdit()
{
TCHAR sysDir[MAX_PATH];
if( !GetSystemDirectory( sysDir, MAX_PATH) )
{
ASSERT(FALSE);
return;
}
ShellExecute(NULL, NULL, L"osk.exe", _T("") , sysDir, SW_SHOW);
}
osk.exe の使用
このコマンドは、ShellExecute(NULL, NULL, L"osk.exe", _T("") , sysDir, SW_SHOW);
ウィンドウの画面上の仮想キーボードを開きます。独自のキーボード ダイアログを作成する必要はありません。Windows には既定で既に 1 つ存在します。
osk.exe を使用しない
独自のダイアログ (CKeyboard) を作成する必要がありますが、IMO ではCDialog::DoModalメソッドを使用しないでください。CDialog ::Createを使用してダイアログをモードレスにし、次に CWnd::ShowWindowを使用してから、 CWnd::SetWindowPosを使用して移動するあなたが望む場所にあなたのダイアログ。