【问题标题】:VC++ : How to prevent esc from closing a dialog box (not mfc)VC++:如何防止 esc 关闭对话框(不是 mfc)
【发布时间】:2010-10-14 07:08:54
【问题描述】:

如何防止 esc 关闭对话框?

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

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

我怎么能这样做? 谢谢。

【问题讨论】:

    标签: c++ windows visual-c++ dialog


    【解决方案1】:

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

    【讨论】:

    • 使用这种方法,您还可以使用标题栏上的X 按钮或从其系统菜单中禁用关闭对话框。
    【解决方案2】:

    您可以很容易地确定它是否来自系统菜单——查看this MSDN page 的“返回值”部分以了解具体方法。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-03
      • 2013-07-23
      • 2018-09-23
      • 1970-01-01
      • 1970-01-01
      • 2011-03-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多