c++ - 按下回车按钮时如何使用 C++ Win32 API 调用按钮?

标签 c++ windows winapi dialog modal-dialog

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

现在我有两个问题...

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

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

SetFocus(GetDlgItem(_hwnd, IDC_NAME));

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

有人能解决吗?

最佳答案

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

Use the DM_SETDEFID message to set the default button in a dialog

Use the WM_NEXTDLGCTL message instead of 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);

关于c++ - 按下回车按钮时如何使用 C++ Win32 API 调用按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13007869/

相关文章:

c++ - 如何开始语音质量 PESQ 测试?

c++ - 有谁知道这个错误与什么有关?我检查了我的语法、我的声明,大部分内容,但找不到解决方案

linux - Windows/Linux x64 如何确定上次访问内存页的时间?

c++ - 我的 Windows 机器上的所有 QT 应用程序都有乱码 GUI

c++ - 如何判断我是否正在泄漏 COM 对象?

c++ - FindFirstFile/FindNextFile API 对缓存结果是否返回?

C++如何使用CWnd *对象加载图片?

c++接口(interface)告诉我我的参数尚未声明

java - 如何模拟客户端和服务器之间的套接字断开连接(在 Windows 上)?

c++ winapi listview项目已选中但未突出显示