読者です 読者をやめる 読者になる 読者になる

堕(惰)プログラマ開発記録

タイトル変えようかなとも思ってるけれど,思い浮かばない

wxPanelのwxNoteBook用ラッパークラス

C++ wxWidgets

レベルが低いコードかもしれない。そこら辺はご了承。

#include <wx/notebook.h>

class wxTabPage: public wxPanel{
public:
  wxTabPage(wxBookCtrlBase *parent): wxPanel(parent)
  {
    m_MainSizer = new wxBoxSizer(wxVERTICAL);
    this->SetSizer(m_MainSizer);

    //部品をここでnewしm_MainSizerに追加!
  }

  ~wxTabPage()
  {
    //使った部品は解放
  }

protected:
  wxBoxSizer *m_MainSizer;
  /*他の部品のポインタ*/
};

このクラスはAddPageの第一引数でこのクラスの変数を指定できる。
その際エラーが出たら(wxpanel*)で回避。

こいつを編集して一つのクラスでまとめ上げてもいいが、
凡庸性を考えるならこいつで共通の部品を指定した後、以下のように派生させるべき

class wxHogeTabPage: public wxTabPage{
public:
  wxHogeTabPage(wxBookCtrlBase *parent): wxTabPage(parent)
  {
    //派生部品をnewしm_MainSizerに追加!
  }
  ~wxHogeTabPage()
  {
    //使った派生部品は解放
  }
private:
  /*派生した部品のポインタ*/
};

もっといい方法があるかもしれないけど、これしか思い浮かばなかった…(汗