我有一个MFC应用程序。有一个CBUTTON。我在CBUTTON上点击了编写代码创建CDialog。如果我使用DOMODAL方法创建cdialog然后键盘选项卡工作正常但如果我使用CREATE方法然后键盘选项卡不工作。
答案 0 :(得分:2)
您可能没有调用IsDialogMessage
,这是确保无模式对话框正确处理键盘输入所必需的。
对于模态对话框(即通过调用DoModal
方法创建的对话框),这不是必需的,因为Windows会在内部处理它。
但是,作为一种解释,这并没有多大意义,因为您正在使用MFC,这应该确保在无模式对话框的消息循环中调用IsDialogMessage
。这就是使用框架的全部意义:它让您不会忘记这样的细节。我无法猜到为什么它不适合你;你没有向我们展示任何代码。请注意,Visual Studio向导会自动为您编写正确的代码。建议您在向应用添加新对话框时使用它们。
Joseph Newcomer关于Creating a Modeless Dialog Box with MFC的文章可能对你有帮助。