我正在创建自己的 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——这可能是个问题吗?