Visual c++ 当cdialog应用程序使用CREATE方法时,键盘选项卡不工作,但使用DOMODAL时工作正常

Visual c++ 当cdialog应用程序使用CREATE方法时,键盘选项卡不工作,但使用DOMODAL时工作正常,visual-c++,mfc,Visual C++,Mfc,我有一个MFC应用程序。有一个按钮。我必须在单击CBUTTON时编写代码创建CDialog。如果我使用DOMODAL方法创建cdialog,则键盘选项卡工作正常,但如果我使用CREATE方法,则键盘选项卡不工作。您可能没有调用,这是确保无模式对话框正确处理键盘输入所必需的 对于模式对话框(即通过调用DoModal方法创建的对话框),这是不必要的,因为Windows在内部处理它 不过,作为解释,这没有多大意义,因为您使用的是MFC,它应该确保在非模态对话框的消息循环中调用IsDialogMessa

我有一个MFC应用程序。有一个按钮。我必须在单击CBUTTON时编写代码创建CDialog。如果我使用DOMODAL方法创建cdialog,则键盘选项卡工作正常,但如果我使用CREATE方法,则键盘选项卡不工作。

您可能没有调用,这是确保无模式对话框正确处理键盘输入所必需的

对于模式对话框(即通过调用
DoModal
方法创建的对话框),这是不必要的,因为Windows在内部处理它

不过,作为解释,这没有多大意义,因为您使用的是MFC,它应该确保在非模态对话框的消息循环中调用
IsDialogMessage
。这就是使用框架的全部意义:它可以防止您忘记像这样的细节。我猜不出为什么它没有像它应该为你工作;你没有给我们看任何代码。请注意,VisualStudio向导会自动为您编写正确的代码。建议您在向应用程序添加新对话框时使用它们


Joseph Newcomer的文章可能会对阅读有所帮助。

你说的“键盘选项卡不工作”是什么意思?什么不起作用?你希望发生什么?如果我按tab键,它就不工作了。上下箭头键工作。按tab键时,将失去对话框的焦点。