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

怎样设置默认按钮?该怎么处理

2012-05-20 
怎样设置默认按钮?*********************edit1edit2button1edit3edit4button2*********************如果焦

怎样设置默认按钮?
*********************
 edit1 edit2
  button1
 edit3 edit4
  button2
*********************
如果焦点在edit1,edit2上,则默认按钮为button1,
如果焦点在edit3,edit4上,则默认按钮为button2.
请问怎么实现?

[解决办法]
BOOL CMyDialog::PreTranslateMessage(MSG* pMsg) 
{
if (pMsg->message == WM_KEYDOWN && pMsg->wParam == VK_RETURN) 
{
switch (::GetDlgCtrlID(pMsg->hwnd))
{
case IDC_EDIT1:
case IDC_EDIT2:
PostMessage(WM_COMMAND, MAKEWPARAM(IDC_BUTTON1, BN_CLICKED), (LPARAM)GetDlgItem(IDC_BUTTON1)->m_hWnd);
return TRUE;
case IDC_EDIT3:
case IDC_EDIT4:
PostMessage(WM_COMMAND, MAKEWPARAM(IDC_BUTTON2, BN_CLICKED), (LPARAM)GetDlgItem(IDC_BUTTON2)->m_hWnd);
return TRUE;
}
}

return CDialog::PreTranslateMessage(pMsg);
}

或:

void CMyDialog::OnOK() 
{
CWnd *pWnd = GetFocus();
if (pWnd)
{
switch (pWnd->GetDlgCtrlID())
{
case IDC_EDIT1:
case IDC_EDIT2:
PostMessage(WM_COMMAND, MAKEWPARAM(IDC_BUTTON1, BN_CLICKED), (LPARAM)GetDlgItem(IDC_BUTTON1)->m_hWnd);
return;
case IDC_EDIT3:
case IDC_EDIT4:
PostMessage(WM_COMMAND, MAKEWPARAM(IDC_BUTTON2, BN_CLICKED), (LPARAM)GetDlgItem(IDC_BUTTON2)->m_hWnd);
return;
}
}

CDialog::OnOK();
}

热点排行