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。
至此,全部工作結束,編譯運行程序,定位到編輯框中輸入回車鍵,看一看效果如何。