大阪市中央区 システムソフトウェア開発会社

営業時間:平日09:15〜18:15
MENU

Code::BlocksでwxSlider, wxFont

株式会社クローバーフィールドの経営理念
著者:津路高広
公開日:2019/02/19
最終更新日:2019/02/19
カテゴリー:技術情報
タグ:

津路です。

前回に引き続き、wxSmithで作ったGUIを盛り込んだプロジェクトをいじっています。
リソースは、Resourcesタブに表示され、編集ができます。
編集すると、Mainソースに逐次、反映されます。
今回は、wxSliderをドラッグして、左側の StaticTextのフォントを変更します。
さて、実行してみると、以下のように、wxSliderの真ん中に〇があるだけで、スライダーになっていません。

wxSliderが丸だけ


そこで、プロパティをいろいろいじってみましたが、同じです。
なので、プロパティのうち、以下は、何を指すのか、迷いました。
とにかく、10などの値を設定して、デバッグしてみましたら、以下のように、やっとスライダーらしくなりました。

wxSliderが表示


次に、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
と表示されます。

時間がなくなったので、続きは次回に。。

    上に戻る