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

时间:2011-06-25 11:10:23

标签: c++ windows winapi

我使用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处理程序中,我创建了底部的'下一步','后退'和'取消'按钮,在下一个'按钮上我设置了样式BS_DEFPUSHBUTTON,然后发送了DM_SETDEFID到具有下一个按钮ID的窗口。该按钮显示为下一个按钮,但在任何输入字段上点击返回都不执行任何操作(没有设置ES_WANTRETURN)。

我做错了什么?如果我错过任何重要的内容,我可以发布更多代码。

谢谢, Ĵ

1 个答案:

答案 0 :(得分:2)

DM_SETDEFID消息通常由DefDlgProc处理。如果您正在拨打DefWindowProc,那么您需要自己处理该消息,这样当IsDialogMessage向您的窗口发送DM_GETDEFID消息时,您就会知道如何回复。