0

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

启用按钮时的对话框。按 Enter 就像单击按钮: 在此处输入图像描述 创建下一个选项卡后的相同对话框: 在此处输入图像描述 禁用下一步按钮时按 Enter! 在此处输入图像描述 更改选项卡并再次返回该选项卡后的对话框! 在此处输入图像描述

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

4

1 回答 1

1

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

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

此外,您可以将默认按钮设置为其他按钮,但为了安全起见,无论如何我都会做覆盖 OnOk 的事情。

于 2012-10-22T07:30:57.313 回答