关于wxMessageDialog和wxMessageBox使用注意
wxMessageDialog dialog(NULL,name+_T(" already exists, Click 'Yes' to overwrite"), _T("Question: Overwrite File or NOT"), wxYES_NO|wxICON_QUESTION,wxDefaultPosition);
int aa =dialog.ShowModal();
if(aa==wxID_NO) continue;
dialog.Update(); //这个很关键,没有它会卡的
//if (wxNO == wxMessageBox( targetname + _T(" already exists, Click 'Yes' to overwrite"), _T("Question: Overwrite File or NOT"), wxYES_NO|wxICON_QUESTION)) continue;
这段代码和未展示部分是一个给生成文件起名字的功能,之后还会跟两个system调用,来生成文件.
问题: 信息框弹出后,点击YES,确定重写文件名,会跳出循环,执行system调用,但这个信息框会卡在那里,不会消失.
所以要加 dialog.update();方法, 别的方法都不行.
如果在纯c++程序里用这信息框,后面不跟 system调用,在同一进程中,应该不会出现这种问题.
307



被折叠的 条评论
为什么被折叠?



