Code::BlocksでwxSlider, wxFont
津路です。
前回に引き続き、wxSmithで作ったGUIを盛り込んだプロジェクトをいじっています。
リソースは、Resourcesタブに表示され、編集ができます。
編集すると、Mainソースに逐次、反映されます。
今回は、wxSliderをドラッグして、左側の StaticTextのフォントを変更します。
さて、実行してみると、以下のように、wxSliderの真ん中に〇があるだけで、スライダーになっていません。
そこで、プロパティをいろいろいじってみましたが、同じです。
なので、プロパティのうち、以下は、何を指すのか、迷いました。
とにかく、10などの値を設定して、デバッグしてみましたら、以下のように、やっとスライダーらしくなりました。
次に、wxSliderにマウスイベントを作成するため、プロパティタブの右のイベントタブを開いて、
ドラッグ中を検知するEX_COMMAND_SCROLL_THUMBTRACK にて、OnSlider1CmdScrollThumbTrackを作成しました。
マウスが離されたことを検知するEX_COMMAND_SCROLL_THUMBRELEASE では、OnSlider1CmdScrollThumbRelease を作成。
デバッグしてみると、イベントは発生しますが、event変数 や、StaticText2->GetFont() の戻り値は、watch list 内で、imcomplete type と表示されてしまいます。
StaticText のフォントを設定して、リビルドして、実行しても同じ。反映されない。
Build messages に、warning が見つかりました。
‘wxFont::wxFont(int, int, int, int, bool, const wxString&, wxFontEncoding)’ is deprecated (declared at /usr/local/include/wx-3.1/wx/gtk/font.h:89): use wxFONT(FAMILY,STYLE,WEIGHT)_XXX constants [-Wdeprecated-declarations]
そこで、以下のように変更しました。
wxFont StaticTet2Font(wxFONTFAMILY_DEFAULT,wxFONTSTYLE_NORMAL,wxFONTWEIGHT_NORMAL);
ビルドすると、エラーとなります。
no matching function for call to wxFont::wxFont(wxFontFamily, wFontStyle, wxFontWeight)
どうも、wxSmith, Code::Blocks, wxWidgetsのバージョンが一致していない?
Code::Blocksのヘルプと開くと、Build: Feb 2 2014, 00:21:45 – wx2.8.12(Linux, unicode) – 32bit
と表示されます。
時間がなくなったので、続きは次回に。。