0

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

4

1 回答 1

2

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

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

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

Joseph Newcomer 关于使用 MFC 创建无模式对话框的文章可能对阅读有所帮助。

于 2013-04-24T06:15:28.163 回答