2011-02-19 3 views
0

パネルを含むフレームを作成したい場合、フレームを最小化または最大化するときにwxListCtrlがあります。ListctrlはFrame.soに依存しません。誰でも私のwxListCtrlフレームをどのようにして作ることができるか教えてください。 私はサイザーがここで動作することを知っている私はそれを使用した、私は間違った方法でそれを使用したと思う。私のコードは:wxListCtrlでsizerを設定する方法

Id_Search_Report::Id_Search_Report(const wxString &title) 
     :wxFrame (NULL,1,title,wxDefaultPosition,wxSize(985,650),wxDEFAULT_FRAME_STYLE) 
    { 
/* 
\--------------------------------------------------------------------------------- 
       INITIALIZAION OF COUNTER WITH 0 
--------------------------------------------------------------------------------- 
*/ 
     this->counter=0; 
/* 
--------------------------------------------------------------------------------- 
       CALLING PANEL CONSTRUCTOR 
--------------------------------------------------------------------------------- 
*/ 
     panel_first =new wxPanel(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL,wxT("")); 
     wxBoxSizer *vbox = new wxBoxSizer(wxVERTICAL); 
       panel_first->SetSizer(vbox); 

/* 
--------------------------------------------------------------------------------- 
       CALLING LIST CONTROL CONSTRUCTOR 
--------------------------------------------------------------------------------- 
*/ 
     data_list_control= new wxListCtrl(panel_first, wxID_ANY, wxPoint(0,0), wxDefaultSize, wxLC_REPORT,wxDefaultValidator); 
     vbox->Add(data_list_control,1,wxEXPAND); 

/* 
--------------------------------------------------------------------------------- 
       CALLING CLOSE BUTTON CONSTRUCTOR 
--------------------------------------------------------------------------------- 
*/ 
     submit=new wxButton(panel_first,41,BUTTON_CLOSE ,wxPoint(880,620), wxDefaultSize); 
     back =new wxButton(panel_first, 42,BUTTON_BACK ,wxPoint(880,630), wxDefaultSize); 
/* 
--------------------------------------------------------------------------------- 
       CREATING EVENT FOR CLOSE BUTTON CLICKED 
--------------------------------------------------------------------------------- 
*/ 
     Connect(41, wxEVT_COMMAND_BUTTON_CLICKED,wxCommandEventHandler(Id_Search_Report::onbuttonclick)); 
/* 
--------------------------------------------------------------------------------- 
       INITIALIZATION OF LIST CONTROL COLOUMN 
       INSERT COLOUMN PARAMETERS ARE:-(ID, HEADER TEXT, ALLIGNMENT(2 FOR MIDDLE) 
--------------------------------------------------------------------------------- 
*/ 
     data_list_control->InsertColumn(0,COLOUMN_1,2); 
     //data_list_control->SetColumnWidth(0, 80); 
     data_list_control->InsertColumn(1,COLOUMN_2,2); 
     //data_list_control->SetColumnWidth(1, 80); 
     data_list_control->InsertColumn(2,COLOUMN_3,2); 
     //data_list_control->SetColumnWidth(2, 80); 
     data_list_control->InsertColumn(3,COLOUMN_4,2); 
     //data_list_control->SetColumnWidth(3, 80); 
     data_list_control->InsertColumn(4,COLOUMN_5,2); 
     //data_list_control->SetColumnWidth(4, 80); 
     data_list_control->InsertColumn(5,COLOUMN_6,2); 
     //data_list_control->SetColumnWidth(5, 80); 
     data_list_control->InsertColumn(6,COLOUMN_7,2); 
     //data_list_control->SetColumnWidth(6, 80); 
     data_list_control->InsertColumn(7,COLOUMN_8,2); 
     //data_list_control->SetColumnWidth(7, 80); 
     data_list_control->InsertColumn(8,COLOUMN_9,2); 
     //data_list_control->SetColumnWidth(8, 80); 
     data_list_control->InsertColumn(9,COLOUMN_10,2); 
     //data_list_control->SetColumnWidth(9, 80); 
     data_list_control->InsertColumn(10,COLOUMN_11,2); 
     //data_list_control->SetColumnWidth(10, 80); 
     data_list_control->InsertColumn(11,COLOUMN_12,2); 
     //data_list_control->SetColumnWidth(11, 80); 
     //sizer 


    } 

答えて

0

実際にフレームを作成していないようです。 wxFrame()クラスを継承しても、フレームは作成されていません。私は電話するでしょう

wxFrame::Create(parent, id, caption, pos, size, style) 

あなたのフレームを最初に与える前に、私は電話するでしょう。次に、このポインタを使用してこのフレームの上にパネルを置く代わりに、

Id_Search_Report *myFrame = this; 

のようにこのフレームを参照することができます。私はあなたがトップFRAMのサイズがユーザによって変更されたときに、あなたのコントロールのサイズを変更したいあなたqueationを理解したよう

0

を助け

希望。

これを行うには、フレームがサイズを変更したときに生成されるsizerイベントに応答する必要があります。このようなもの:

EVT_SIZE(Id_Search_Report::OnSize) 

void MyFrame::OnSize(wxSizeEvent&) 
{ 
    if(data_list_control) { 
    data_list_control->SetSize(GetClientRect()); 
    } 
} 
関連する問題