如何防止 esc 关闭对话框?
我搜索了这个主题,但我发现的只是 MFC(您可以覆盖 MFC 中的 PreTranslateMessage 函数)。但我的程序是用 Windows API 编写的,而不是 MFC。
我试图在 Dialog 过程中捕获所有键盘消息,但它们都不起作用。我也尝试在对话框中使用子类化,但也没有用。
我怎么能那样做?谢谢。
如何防止 esc 关闭对话框?
我搜索了这个主题,但我发现的只是 MFC(您可以覆盖 MFC 中的 PreTranslateMessage 函数)。但我的程序是用 Windows API 编写的,而不是 MFC。
我试图在 Dialog 过程中捕获所有键盘消息,但它们都不起作用。我也尝试在对话框中使用子类化,但也没有用。
我怎么能那样做?谢谢。
处理 WM_COMMAND 并检查 IDCANCEL。然后不要将控件传递给默认窗口过程。
您可以很容易地确定它是否来自系统菜单——查看此 MSDN 页面的“返回值”部分以了解如何。
如果您无法确定它是来自 ESCAPE 键还是按钮,您总是可以通过为 Cancel 按钮使用不同的标识符来解决这个问题。