Windows程序中Tab键是默认的切换输入焦点的按键,但用回车键切换输入焦点更符合人们的输入习惯。Delphi、VB中这个问题比较容易解决,VC++中却很少有资料提到。通过反复尝试,我找到了一种方法,或许对大家有所帮助。
1.VC++中appwizard生成一个基于对话框的程序。切换resourseview状态,在对话框中插入一个编辑框,同时修改其styles属性,选中multiline 、want return两项。
2.①在classwizard中选add class增加一个新类,name定义为myedit,base class选择edit。其余采用默认选项。
②在新生成的my-edit类中加入wm-keydown的消息映射函数,加入如下代码。
oid Myedit::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
{
// TODO: Add your message handler code here and/or call default
if (nChar= = VK_RETURN) //插入开始部分
{
CDialog* Pwnd=(CDialog*)GetParent() ;//取得对话框指针
Pwnd->NextDlgCtrl( ); //切换到下一个输入焦点
}
//插入结束部分
CEditView::OnKeyDown(nChar, nRepCnt, nFlags);
}
3.在classwizard中选择 member variables 选项,class name选择对话框类,control ids中选择编辑框的id号,然后选择add variable按扭。在对话框中 categary选择control, variable type 刚才定义的类myedit。
至此,全部工作结束,编译运行程序,定位到编辑框中输入回车键,看一看效果如何。