如何使用 Visual Studio 类向导添加命令
在 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 上已经有一个
不使用 osk.exe
您将必须创建自己的对话框(CKeyboard),但 IMO 您不应该使用CDialog::DoModal方法,您应该使用CDialog::Create使对话框无模式,然后使用CWnd::ShowWindow然后使用CWnd::SetWindowPos移动你想要的对话。