【发布时间】:2015-05-11 10:40:47
【问题描述】:
我遇到过 CDialog::SetDefId,虽然它非常简单明了,但它是用于“按钮”的,但我想将此功能与非按钮控件一起使用。我知道您必须按 Enter 或 Return 使对话框使用该 ID
如果我在 CDialog::OnInitDialog 中将 nID 设置为 0 并且没有设置默认按钮,则对话框将默认为 CDialog::OnOk,如果我确实设置了默认按钮,则对话框将按预期按下该按钮。
问题是我想让它适用于非按钮控件,所以如果我将 nID 设置为不是按钮的控件,即使我为 keydown 事件或设置消息处理程序,对话框也不会执行任何操作NM_RETURN,不管控件有没有焦点,如果我按下 Enter 或 Return,对话框仍然什么都不做。
如何在不使用 PreTranslateMessage 之类的东西的情况下使控件成为默认控件?以及向控件发送的消息是什么?
提前致谢
【问题讨论】:
-
对于非按钮控件没有“默认”之类的东西。例如,“默认”单选按钮或“默认”编辑控件应该做什么?你想达到什么目的?对我来说,这看起来像 XY problem。
-
我在看这个问题stackoverflow.com/questions/30127282/… 并且想知道是否可以有一个默认的非按钮控件,所以任何输入都会默认传递给它。这不是我需要解决的问题,而是我正在使用它来研究 mfc