按Enter键时,选项卡控件的选项卡页将关闭

时间:2012-10-20 18:54:35

标签: visual-c++ mfc

我有一个标签控件,其中有一些对话框作为标签页,我在每个标签页面都有一个创建下一个标签的按钮,这些按钮被设置为默认按钮,所以当我按下回车键时它会转到下一个标签。但是,按下这些按钮后,它们将被禁用,当您返回该选项卡时,它不允许客户端再次单击下一个按钮,问题是当按下按钮时按Enter键而不是默认按钮,标签页关闭! 似乎进入关闭对话框!但当我更改标签并再次返回该标签时,会再次显示对话框!这意味着输入不会破坏或关闭该对话框!

启用按钮时的对话框。按Enter键就像点击按钮一样: enter image description here 创建下一个选项卡后的相同对话框: enter image description here 禁用下一步按钮时按enter键! enter image description here 更改选项卡并再次返回该选项卡后的对话框! enter image description here

我不明白它的行为!请注意,我没有为输入按钮写任何东西,我只是将这些按钮设置为默认按钮,即使这些按钮不是默认按钮,它也会发生!我该怎么办?

1 个答案:

答案 0 :(得分:1)

对话框的默认操作(即按Enter键时调用的内容,如果焦点不在另一个按钮或捕获输入的控件中),则调用OnOk,默认情况下,OnOk关闭对话框。
所以你必须覆盖对话框'OnOK函数并给它们一个空体:

void CMyTabDlg::OnOk()
{
    // Nothing, so it does not close the dialog
}

另外,你可以将默认按钮设置为其他按钮,但我还是会覆盖OnOk,只是为了安全。