我使用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
)。
我做错了什么?如果我错过任何重要的内容,我可以发布更多代码。
谢谢, Ĵ
答案 0 :(得分:2)
DM_SETDEFID
消息通常由DefDlgProc
处理。如果您正在拨打DefWindowProc
,那么您需要自己处理该消息,这样当IsDialogMessage
向您的窗口发送DM_GETDEFID
消息时,您就会知道如何回复。