gpt4 book ai didi

c++ - wxWidgets - 无模式 wxDialog

转载 作者:太空宇宙 更新时间:2023-11-04 14:11:28 24 4
gpt4 key购买 nike

我正在创建我自己的 wxDialog 子类,它在用作无模式对话框时效果很好,如下所示:

AddDialog newAddDialog = new AddDialog(this, wxID_ANY, _T("Dialog Title"), wxDefaultPosition, wxDefaultSize, 0);
if (newAddDialog.ShowModal() == wxID_OK)
{
//do something
}

当使用 ShowModal() 时,程序流停止,直到按下 OK 或 Cancel。我需要显示对话框,但不停止 GUI 的流程,所以我尝试了这个:

AddDialog newAddDialog = new AddDialog(this, wxID_ANY, _T("Dialog Title"), wxDefaultPosition, wxDefaultSize, 0);
if (newAddDialog.Showl() == wxID_OK)
{
//do something
}

使用 Show() 时,对话框会短暂显示然后消失。我认为这可能是范围问题,所以我使用了 newAddDialog 的指针。然后,对话框出现,当我单击确定或取消时,对话框关闭,但即使单击确定,if 语句代码也不会执行。

有人知道怎么办吗?谢谢。


进一步说明:

我在我的 Dialog 子类中有一个虚拟 void 函数,我在另一个类中覆盖了它。当我覆盖时,我似乎无法使事件正常工作,但是,如果我在实际的 Dialog 子类中有一个 void,我会收到事件调用。这似乎是一个覆盖问题,但我不知道问题是什么。这不是我在 OnInit() 调用中调用的主要 GUI - 这会是个问题吗?

最佳答案

ShowModal 阻止程序的执行并返回结果(如 wxID_OK)。另一方面,Show 只显示对话框并立即返回,因此您无法从它的返回值检查结果(用户按下按钮的内容)。相反,您必须通过从对话框或类似的东西发送事件来传达该对话框的结果。

关于c++ - wxWidgets - 无模式 wxDialog,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13961292/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com