Code::BlocksでwxSlider,wxFont 続き
津路です。
前回では、Static Text widgetの
フォントを変えたときに、ワーニングが発生して、一向に反映されませんでした。
このワーニングでは、アクセス方法が古くてだめだと言われていました。
今回は、これを解決するため、色々tryしてみました。
以下の関数定義のそれぞれを調べることからはじめました。
wxFont StaticText2Font(10,wxDEFAULT,wxFONTSTYLE_NORMAL,wxBOLD,false,_T(“Roboto”),wxFONTENCODING_DEFAULT);
まず、第2引数は、font familyです。wxDEFAULTの定義では、enum wxDeprecatedGUIConstantsに入っていて、これが問題です。
wxFontの定義では、wxFontFamily ですので、enum wxFontFamilyが定義されていますので、その中のどれかが正解です。
と変えてみましたが、ワーニングは消えません。
次のwxFONTSTYLE_NORMALは問題なし。
wxBOLDは、deprecatedですので、wxFONTWEIGHT_BOLDに変更。
ワーニングは消えましたが、Runしても反映されません。
次には、Fontエディタにて、Advancedをクリックして、System-based fontを選択し、大きめにしました。それでも反映されず。
Sans Bold fontがシステムにもあるのを確認しましたが、もとのままです。
その後、いろいろtryしました。System-based fontのままで、StyleをNormalに、WeightもNormalにして、アンダーバーを設定(Underlined-Yes)しました。
これで、アンダーバーだけは反映されました。BOLDやフォントは、反映されませんが。。
また、プログラムでSliderイベントから値を求めて、フォントサイズを変更しようとしましたが、反映されません。。
ところで、ソースコードを編集していると、アンダーバーが見えないことに気づきました。
アンダーバーは、文字列を、国際化を気にせず、関数に任せたい、あるいはUnicodeなども吸収してほしい場合に、_Tマクロみたいに、_(“文字列”)として使います。
これを解消するには、メニューからSetting-Editorを開いて、Fontを選びなおします。