MFC 按回车键移动光标到下一个文本框

相应代码地址:http://download.csdn.net/detail/u010901792/9588394


1. 去掉OK按钮的回车按钮的缺省属性。

 

  将Default button勾掉。

 并将OK按钮相应的消息函数中,如下图中的代码注释掉

 

2. 修改编辑框的窗口过程

Ø 增加WM_INITDIALOG消息响应函数

Ø 定义先前的窗口过程 WNDPROC prevProc;

OnInitDialog()函数中实现

prevProc=(WNDPROC)SetWindowLong(GetDlgItem(IDC_EDIT_STAET)->m_hWnd,GWL_WNDPROC,(LONG)WinSunProc);

Ø 实现新的窗口过程WinSunProc

(注:参照函数WindowProc的定义)

LRESULT CALLBACK WinSunProc (HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam)

{

if (uMsg==WM_CHAR && wParam==0x0d)

 {

SetFocus(::GetWindow(hwnd,GW_HWNDNEXT));

   return 1;

  }

else

{

return prevProc(hwnd,uMsg,wParam,lParam);

}

}

 

3. 利用缺省按钮的响应函数,使光标在所有编辑框依次向下移动(在ONOK函数中添加代码)

 

GetNextDlgTabItem(GetFocus())->SetFocus();

4. 可以查看并修改组件的顺序

Layout-->Tab order 会出现所有控件的顺序。

单击控件控件的循序就会发生变化。



猜你喜欢

转载自blog.csdn.net/u010901792/article/details/52053516
MFC