1

如何防止 esc 关闭对话框?

我搜索了这个主题,但我发现的只是 MFC(您可以覆盖 MFC 中的 PreTranslateMessage 函数)。但我的程序是用 Windows API 编写的,而不是 MFC

我试图在 Dialog 过程中捕获所有键盘消息,但它们都不起作用。我也尝试在对话框中使用子类化,但也没有用。

我怎么能那样做?谢谢。

4

2 回答 2

8

处理 WM_COMMAND 并检查 IDCANCEL。然后不要将控件传递给默认窗口过程。

于 2009-03-19T11:50:03.173 回答
0

您可以很容易地确定它是否来自系统菜单——查看此 MSDN 页面的“返回值”部分以了解如何。

如果您无法确定它是来自 ESCAPE 键还是按钮,您总是可以通过为 Cancel 按钮使用不同的标识符来解决这个问题。

于 2009-03-20T04:19:32.913 回答