C winapi:使无模式对话框忽略加速器

C winapi:使无模式对话框忽略加速器,c,winapi,C,Winapi,我的主要应用程序有数字键加速器。当我有一个带有文本字段的模式对话框(DialogBox())时,可以使用这些键在文本字段中键入值。但当我将其设置为非模态(CreateDialog())时,数字击键停止进入文本字段,即使它已被选中。根据需要,非加速键和numpad数字也会出现在那里。其余的都被输入到主应用程序,主应用程序将它们作为热键执行 因此,我需要主应用程序忽略加速器时,重点是在对话框文本字段。我是否缺少一些对话框参数,或者它与主应用程序热键处理有关?顺便问一下,您的主消息泵中是否有?如果不是

我的主要应用程序有数字键加速器。当我有一个带有文本字段的模式对话框(
DialogBox()
)时,可以使用这些键在文本字段中键入值。但当我将其设置为非模态(
CreateDialog()
)时,数字击键停止进入文本字段,即使它已被选中。根据需要,非加速键和numpad数字也会出现在那里。其余的都被输入到主应用程序,主应用程序将它们作为热键执行


因此,我需要主应用程序忽略加速器时,重点是在对话框文本字段。我是否缺少一些对话框参数,或者它与主应用程序热键处理有关?

顺便问一下,您的主消息泵中是否有?如果不是,则将其放在那里,并确保如果返回TRUE,则不会通过加速器和/或调度器传递消息。标准模型(伪)
而getmsg{if!isdialogmessage{translate;dispatch}}
看起来非常正常,但是可以对没有全局HWND(isdialogmessage需要)的对话框做些什么吗?我只是直接调用函数,而不是
DialogHWnd=CreateDialog()
。您需要对话框的窗口句柄才能访问它。因为发送对话框消息(像任何其他窗口一样)需要它,所以我希望您会保留它。听起来您需要添加一个全局或外部(您可以让创建函数成长为一个子循环,在对话框关闭之前执行我所述的操作,但这会让管理变得非常困难)。非常感谢,它已经开始工作了。