c – 使用CreateWindowEx()创建的窗口中的默认按钮

我使用CreateWindowEx创建了一个窗口,它使用以下代码作为向导对话框;

DWORD dwStyle = WS_DLGFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_OVERLAPPEDWINDOW;
m_hWnd = CreateWindowEx(WS_EX_APPWINDOW,_T("WIZARD"),_T("SETUP"),dwStyle,CW_USEDEFAULT,WIZARD_WIDTH,WIZARD_HEIGHT,NULL,g_hInstance,this);

在WM_CREATE处理程序中,我创建了底部的’Next’,’Back’和’Cancel’按钮,在Next’按钮上我设置了样式BS_DEFPUSHBUTTON,我将DM_SETDEFID发送到具有下一个按钮ID的窗口.该按钮显示为下一个按钮,但在任何输入字段上返回返回都不执行任何操作(无设置ES_WANTRETURN).

我究竟做错了什么?如果我错过任何重要信息,我可以发布更多代码.

谢谢,
Ĵ

解决方法

DM_SETDEFID消息通常由DefDlgProc处理.如果您正在调用DefWindowProc,那么您需要自己处理该消息,以便当IsDialogMessage向您的窗口发送DM_GETDEFID消息时,您将知道如何响应.

相关文章

本程序的编译和运行环境如下(如果有运行方面的问题欢迎在评...
水了一学期的院选修,万万没想到期末考试还有比较硬核的编程...
补充一下,先前文章末尾给出的下载链接的完整代码含有部分C&...
思路如标题所说采用模N取余法,难点是这个除法过程如何实现。...
本篇博客有更新!!!更新后效果图如下: 文章末尾的完整代码...
刚开始学习模块化程序设计时,估计大家都被形参和实参搞迷糊...