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, CW_USEDEFAULT, WIZARD_WIDTH, WIZARD_HEIGHT, NULL, NULL, g_hInstance, this);

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

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

谢谢,
Ĵ

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

点赞