首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

VC怎么实现用ENTER键来切换焦点?

2012-04-11 
VC如何实现用ENTER键来切换焦点???如题...小鸟求大鸟们的详细讲解!![解决办法]接受到ENTER消息后发出TAB消

VC如何实现用ENTER键来切换焦点???
如题...小鸟求大鸟们的详细讲解!!

[解决办法]
接受到ENTER消息后发出TAB消息
[解决办法]
CWnd* SetFocus( );

[解决办法]
响应键盘消息

再SetFocus()
[解决办法]
我想楼主是想输入完毕按下ENTER自动跳到下个输入区域
[解决办法]
需要ENTER消息转TAB消息的窗口应该是很明确的吧~~~
[解决办法]
不过话说过来,也不是不能实现。
在PreTranslateMessage中处理一下应该是可以做到的。
[解决办法]
OnOk函数里

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

[解决办法]
在PreTranslateMessage()加入以下代码:

if (pMsg->message == WM_KEYDOWN)
{
if ((TCHAR)pMsg->wParam == VK_RETURN)
{
CString m_szStr;
int nCount = MAX_PATH;
CWnd* pWnd = (CWnd*)pDlg->GetFocus();
nCount = GetClassName(::GetFocus(),m_szStr.GetBuffer(MAX_PATH),nCount);
m_szStr.ReleaseBuffer();
m_szStr.MakeUpper();
if (m_szStr != _T("BUTTON"))
{
if (::IsWindow(pMsg->hwnd))
{
pDlg->NextDlgCtrl();
pWnd = (CWnd*)pDlg->GetFocus();
if (pWnd->IsKindOf(RUNTIME_CLASS(CEdit)))
{
CEdit* pEdit =(CEdit*)pWnd;
pEdit->SetSel(0,1024);
if (pEdit->IsWindowEnabled())
{
pEdit->SetFocus();
}
}
}
}
}
[解决办法]
最简单的方法:(对话框应用)
1. 重载OnOK()(在OK按钮上双击)
2. 函数内只需用这一句:NextDlgCtrl(); 
3. 删除“CDialog::OnOK();”
[解决办法]
GetNextDlgTabItem(GetFocus())-> SetFocus();

热点排行