0

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

现在我有2个问题...

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

2.我正在使用代码来关注文本框,

SetFocus(GetDlgItem(_hwnd, IDC_NAME));

但它无法聚焦该对话框,我的意思是光标位置在那里,但无法获得任何值,当我输入时......

任何人都可以解决它吗?

4

1 回答 1

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);
于 2012-10-22T11:32:06.753 回答