我想将我的wxStaticText放在wxWindow上,但似乎这不起作用。这是我的代码:
#include <iostream>
#include <wx/wx.h>
#include <wx/gbsizer.h>
using namespace std;
class MyApp: public wxApp
{
virtual bool OnInit();
};
bool MyApp::OnInit()
{
wxFrame *frame = new wxFrame(NULL,wxID_ANY,wxT("fenetre"));
wxWindow *win = new wxWindow(frame,wxID_ANY);
win->SetWindowStyle(wxBORDER_RAISED);
wxStaticText *text = new wxStaticText(win,wxID_STATIC,wxT("Mon texte"));
wxBoxSizer *b = new wxBoxSizer(wxVERTICAL);
wxGridBagSizer *box = new wxGridBagSizer();
wxButton *button = new wxButton(frame,wxID_ANY,wxT("salut"));
b->Add(text,0,wxALIGN_CENTRE);
win->SetSizer(b);
box->Add(win,wxGBPosition(0,0),wxDefaultSpan,wxALL|wxALIGN_CENTER|wxGROW);
box->Add(button,wxGBPosition(1,0),wxDefaultSpan,wxALL|wxGROW);
box->AddGrowableCol(0);
box->AddGrowableRow(0);
box->AddGrowableRow(1);
frame->SetSizer(box);
frame->Show(true);
return true;
}
DECLARE_APP(MyApp)
IMPLEMENT_APP(MyApp)
我不知道出了什么问题,但是wxStaticText并没有将自己置于我的wxWindow上。请告诉我缺少什么。
我的代码直接在框架上使用wxStaticText。
#include <wx/gbsizer.h>
using namespace std;
class MyApp: public wxApp
{
virtual bool OnInit();
};
bool MyApp::OnInit()
{
wxFrame *frame = new wxFrame(NULL,wxID_ANY,wxT("fenetre"));
//wxFrame *win = new wxFrame(frame,wxID_ANY,wxT("hh"));
wxStaticText *text = new wxStaticText(frame,wxID_STATIC,wxT("Mon texte"),wxDefaultPosition,wxDefaultSize,wxALIGN_CENTER_HORIZONTAL);
text->SetWindowStyle(wxBORDER_RAISED);
//wxBoxSizer *b = new wxBoxSizer(wxVERTICAL);
wxGridBagSizer *box = new wxGridBagSizer();
wxButton *button = new wxButton(frame,wxID_ANY,wxT("salut"));
//b->Add(text,0,wxALIGN_CENTRE);
//win->SetSizer(b);
box->Add(text,wxGBPosition(0,0),wxDefaultSpan,wxALL|wxALIGN_CENTER);
box->Add(button,wxGBPosition(1,0),wxDefaultSpan,wxALL|wxGROW);
box->AddGrowableCol(0);
box->AddGrowableRow(0);
box->AddGrowableRow(1);
frame->SetSizer(box);
frame->Show(true);
return true;
}
DECLARE_APP(MyApp)
IMPLEMENT_APP(MyApp)
答案 0 :(得分:0)
请勿将控件直接放在框架上,即作为框架的子框。
不要这样做:
wxStaticText *text = new wxStaticText(frame,wxID_STATIC,wxT("Mon texte"),
最好将wxPanel创建为框架的单个子项,并将控件作为面板的子项。
请拜托,请查看示例应用程序并按照其中的操作方式进行操作。
如果您使用示例应用程序代码作为起点,那么您将节省大量时间,您自己和其他所有人的时间。