如何禁用默认的 MFC 对话框处理的按键

文章翻译 文章翻译
文章编号: 122489 - 查看本文应用于的产品
展开全部 | 关闭全部

概要

Windows 对话框支持使用的上一个命令按钮没有焦点时按下 ENTER 键时,将自动激活上一个默认按钮 (按钮)。通过按 ENTER 键被激活为默认按钮 (按钮) 时 MFC 类库自动将一个对话框,为调用 CDialog::OnOK() 虚拟函数。

此行为符合规定该指南"的 Windows 接口: 一个应用程序设计指南 》"包括与 Windows 3.1 版 SDK 文档中本手册。它也是可以从微软出版社。

更多信息

尽管默认按钮 (可通过按钮) 支持,建议,您可能希望禁用或修改在某些情况下为标准实现。通过执行以下步骤,您可以将这在 MFC 应用程序中执行操作:

  1. 加载到应用程序 Studio 的对话框和确定按钮标识符从 IDOK 更改为其他 IDC_MYOK 等内容。此外,清除默认按钮属性从检查。
  2. 类向导用于创建一个消息处理函数名为 OnClickedMyOK 此按钮。BN_CLICKED 消息接收来自此按钮时,将会执行此函数。
  3. 在 OnClickedMyOK 代码,调用中的 OnOK 函数基类版本。下面是一个示例:
       void CMyDialog::OnClickedMyOK()
       {
          CDialog::OnOK();
       }
    						
  4. 在对话框中重写 OnOK 并不执行任何操作在函数内。下面是一个示例:
       void CMyDialog::OnOK()
       {
       }
    						
  5. 运行程序,并显示对话框。确定按钮以外的其他控件提供焦点。请按 RETURN 键。请注意 CDialog::OnOK() 永远不会执行。
这种技术能有效地禁止 MFC 程序中的标准的默认按钮 (按钮) 支持。确定按钮将继续激活通过鼠标或通过一个助记键键击时的行为与以前一样,但 ENTER 键将不触发 OnOK 处理。

此技术可用于禁用或修改默认 OnCancel 处理。转义密钥生成 CDialog::OnCancel 的调用,只需按 enter 键将生成一个 OnOK 函数调用。

属性

文章编号: 122489 - 最后修改: 2006年11月21日 - 修订: 3.1
这篇文章中的信息适用于:
  • Microsoft Foundation Class Library 4.2?当用于
    • Microsoft Visual C++ 1.0 专业版
    • Microsoft Visual C++ 1.5 专业版
    • Microsoft Visual C++ 1.0 专业版
    • Microsoft Visual C++ 2.0 Professional Edition
    • Microsoft Visual C++ 4.0 标准版
关键字:?
kbmt KB122489 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 122489
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。
不再更新的 KB 内容免责声明
本文介绍那些 Microsoft 不再提供支持的产品。因此本文按“原样”提供,并且不再更新。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com