Code::Blocks エラー対処とデバッグ
津路です。
久しぶりに、Code::Blocksを触りました。
最初の投稿において、最後のところで、実行時のエラーについて書きました。
Tracebackをクリックすると、エラー個所を特定できます。この場合、wx/common/sizer.h から呼ばれる DoInsertにおいて、assertエラーが発生しています。
このエラーを解消するには、WX_EXPANDというプロパティコードを削除すればよいのですが、それでは、リソースでのEXPAND Enableを無視した形になりますので、リソース側でEXPANDプロパティのチェックを外すのが正当です。
しかし、外すとwidgetの横拡張ができなくなるので、本体のsizer.cppのBoxSizerに関するスコードを触るかです。
リソースを開くと、プログラムソースが自動的に編集状態となり、WX_EXPANDはOFFになりますので、BoxSizer内ではしないでほしいのでしょう。
と、考えていると、Expandプロパティの上に、Horizontal align, Vertical alignがあり、centerがあります。これらを、Left, Topに変更して保存、ビルド&実行すると、エラーが出なくなりました。
さて、実行して、FileメニューからOpenを選び、ファイルを開きますと、上のTextCtrlに内容を表示し、下のStaticTextにファイルのパスを表示しています。
ここで、下部のパス名部分が縦に半分を占めていて、横に縮小されています。
これを解消するには、それぞれのwidgetのproportionを編集して、占有率を変える必要があります。
デフォルト値は1です。
この場合は、TextCtrlのproportionを5にしました。また、StaticTextのalignをleft, topにして、EXPANDを有効にしました。
実行しますと、おおよそうまく表示されました。
デバッグを実行してみました。FileメニューのOpenに割り当てたeventであるOnOpenに関しては、ブレークポイントへ飛んでは来ますが、wxCommandEventのデータも含め、一切見ることができず、しかもstep inなどの機能も利用できません。原因が不明です。