按Enter按钮时如何使用C ++ Win32 API调用按钮?

时间:2012-10-22 08:54:28

标签: c++ windows winapi dialog modal-dialog

我使用c ++ win32 API创建了一个对话框... 有3个文本框,1个组合框和3个按钮......

现在我有2个问题......

1.当我按下ENTER按钮时,它会调用第二个按钮(ID_OK)功能,但我想调用第一个按钮(ID_MYBUTTON)......

2.我正在使用代码来聚焦文本框,

SetFocus(GetDlgItem(_hwnd, IDC_NAME));

但它无法关注那个对话框,我的意思是光标位置在那里,但是当我打字时,它无法获得任何价值......

有人可以解决吗?

1 个答案:

答案 0 :(得分:2)

这可以回答你的两个问题: http://blogs.msdn.com/b/oldnewthing/archive/2004/08/02/205624.aspx

  

使用DM_SETDEFID消息在对话框中设置默认按钮

     

使用WM_NEXTDLGCTL消息而不是SetFocus()

// set default button
SendMessage(_hwnd, DM_SETDEFID, (WPARAM)ID_MYBUTTON, 0);
//TODO: if the former default button's style remains, update with BM_SETSTYLE

// set focus
SendMessage(_hwnd, WM_NEXTDLGCTL, (WPARAM)GetDlgItem(_hwnd, IDC_NAME), TRUE);