我想通过如下的代码来显示一个窗口,但是实际上这段代码是显示不了窗口的。为什么呢?有哪位大侠帮忙解答一下呢?吾将不胜感激。
wxWindow* win = new wxWindow(0,wxID_ANY,wxPoint(100,100),wxSize(200,200),wxBORDER_SUNKEN, _("Base Window"));
win->Show(true);
SetTopWindow(win);
wxWindow可以显示窗口吗?
-
- Super wx Problem Solver
- Posts: 340
- Joined: Mon Oct 06, 2008 12:55 pm
Re: wxWindow可以显示窗口吗?
不行,对wxWindow来说,需要一个父窗口,wxFrame则非必需。下面程序可以验证下.new wxWindow(0,...)导致断言失败:
Code: Select all
../../src/msw/window.cpp(527) :assert "parent" failed in Create()
can't create wxWindow without parent
Code: Select all
#include <wx/wx.h>
class App:public wxApp
{
public:
virtual bool OnInit();
};
IMPLEMENT_APP(App)
bool App::OnInit()
{
//window will be created but it is invisible and it gets destroyed shortly after the program run.
wxWindow* win=new wxWindow(&wxTopLevelWindow(),wxID_ANY,wxPoint(100,100),wxSize(200,200),wxBORDER_SUNKEN,_("Base Window"));
//OK
//wxFrame* win=new wxFrame(NULL,wxID_ANY,_T(""),wxDefaultPosition,wxDefaultSize);
win->SetLabel(_T("hello"));
win->Show(true);
SetTopWindow(win);
return true;
}
Regards,
Sam
-------------------------------------------------------------------
Windows 10 64bit
VS Community 2019
msys2-mingw13.2.0 C::B character set: UTF-8/GBK(Chinese)
wxWidgets 3.3/3.2.4 Unicode Mono Static gcc static build
Sam
-------------------------------------------------------------------
Windows 10 64bit
VS Community 2019
msys2-mingw13.2.0 C::B character set: UTF-8/GBK(Chinese)
wxWidgets 3.3/3.2.4 Unicode Mono Static gcc static build
-
- Earned a small fee
- Posts: 21
- Joined: Wed Oct 12, 2011 2:40 pm
Re: wxWindow可以显示窗口吗?
首先谢谢你的回复。
我还有些疑问:
你说“对wxWindow来说,需要一个父窗口,wxFrame则非必需”,那么是不是说“在有父窗口的时候,它就可以显示”,但是我试了不行。还有“window will be created but it is invisible and it gets destroyed shortly after the program run”,这个是为什么呢? 在MFC中,window基类是可以显示的。这里的基类为什么不能显示呢?
我还有些疑问:
你说“对wxWindow来说,需要一个父窗口,wxFrame则非必需”,那么是不是说“在有父窗口的时候,它就可以显示”,但是我试了不行。还有“window will be created but it is invisible and it gets destroyed shortly after the program run”,这个是为什么呢? 在MFC中,window基类是可以显示的。这里的基类为什么不能显示呢?
-
- Super wx Problem Solver
- Posts: 340
- Joined: Mon Oct 06, 2008 12:55 pm
Re: wxWindow可以显示窗口吗?
对不起,关于有父窗口也不能显示的问题,如果已测试不行,那就不知了,我是根据文档提示想当然的,误导了兄弟,不好意思。tujh wrote:首先谢谢你的回复。
我还有些疑问:
你说“对wxWindow来说,需要一个父窗口,wxFrame则非必需”,那么是不是说“在有父窗口的时候,它就可以显示”,但是我试了不行。还有“window will be created but it is invisible and it gets destroyed shortly after the program run”,这个是为什么呢? 在MFC中,window基类是可以显示的。这里的基类为什么不能显示呢?
window will be created but it is invisible and it gets destroyed shortly after the program run=>
这个是我上面那行代码在测试时自已观察到程序的细小变化故而言之,请一并忽略吧。
我在英文坛子里问哈,你留意看有没有复。
http://forums.wxwidgets.org/viewtopic.php?f=1&t=31824
Regards,
Sam
-------------------------------------------------------------------
Windows 10 64bit
VS Community 2019
msys2-mingw13.2.0 C::B character set: UTF-8/GBK(Chinese)
wxWidgets 3.3/3.2.4 Unicode Mono Static gcc static build
Sam
-------------------------------------------------------------------
Windows 10 64bit
VS Community 2019
msys2-mingw13.2.0 C::B character set: UTF-8/GBK(Chinese)
wxWidgets 3.3/3.2.4 Unicode Mono Static gcc static build
-
- Earned a small fee
- Posts: 21
- Joined: Wed Oct 12, 2011 2:40 pm
Re: wxWindow可以显示窗口吗?
samsam598 wrote:对不起,关于有父窗口也不能显示的问题,如果已测试不行,那就不知了,我是根据文档提示想当然的,误导了兄弟,不好意思。tujh wrote:首先谢谢你的回复。
我还有些疑问:
你说“对wxWindow来说,需要一个父窗口,wxFrame则非必需”,那么是不是说“在有父窗口的时候,它就可以显示”,但是我试了不行。还有“window will be created but it is invisible and it gets destroyed shortly after the program run”,这个是为什么呢? 在MFC中,window基类是可以显示的。这里的基类为什么不能显示呢?
window will be created but it is invisible and it gets destroyed shortly after the program run=>
这个是我上面那行代码在测试时自已观察到程序的细小变化故而言之,请一并忽略吧。
我在英文坛子里问哈,你留意看有没有复。
http://forums.wxwidgets.org/viewtopic.php?f=1&t=31824
谢谢。后继有进展咱们再交流。