VS2005 C++ネーティブコードでプログラムしています。
EDIT CONTROLの文字がFROMと同じサイズになって見難いので、特定のEDIT CONTROLのみ14程度に大きくしたいのですが。ちなみにFROMは10を使っています。宜しくお願いします。
FROMではなくてFORM(フォーム)でした。すみません。
編集 削除>VS2005 C++ネーティブコード
ネイティブなのにFormなんでしょうか?
マネージドのFormであればTextBoxのプロパティのフォントを変えればいいだけ。
Win32 SDKを使っているばあいは、SendMessageでWM_SETFONTでフォントを設定すれば
いいだけです。
# CFormViewとかですかね…?
編集 削除ご指摘の通り、CFormViewクラスを使っています。通常のウインドウスタイルのままでコントロールを多数配置しています。複雑な信号処理計算をしていますので、マネージコードでは追いつかないのではないかと思いますので、ネーティブコードを採用しています。
マネージコードのEdit Controlはプロパティにフォント設定がありますが、ネーティブコードでは有りませんので、方法が分かりません。宜しく。
ネーティブコードでプログラム書き直してテストするしかありませんかね?
> SendMessageでWM_SETFONTでフォントを設定すれば
> いいだけです。
って書いてありますけど。
というかMFCですね。
CWnd::SetFont
があるのでそれを使ってフォントを設定してください。
CFontの変数はEDITが存在する間必要になるので、FormViewのメンバ変数にしておくとよいでしょう。
類似スレ
http://rararahp.cool.ne.jp/cgi-bin/lng/vc/vclng.cgi?print+200603/06030036.txt
Blueさん。SendMessageの使い方良く分かりませんでした。
m_Font.CreatePointFont(240,L"MS ゴシック");を使うと行間隔が広がるのと変な文字表示に変わるのみで、文字は大きくなりません。
m_Font.CreateFont(24,0,0,0,FW_NORMAL,FALSE,FALSE,FALSE,SHIFTJIS_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH|FF_DONTCARE, L"MS ゴシック");を使ってみても、CreatePointFontを使ったのと同様に行感覚が広がって変な文字が出ます。システム文字でもなさそうです。
EditRich2のコントロールを貼り付けたら、別スレッドの終了処理の行で変なエラーになります。AfxInitRichEdit2();を入れましたがね。 VS2005は色々分からないところが出て困りますわ。こうなると、BlueさんのSendMessageが頼りです。よろしく。
> CWnd::SetFont
を使うといっているのになんでSendMessageやRichEditが出てきているのでしょうか?
単なるEdit Controlのフォントを変えるだけなのですよね?
それともEdit Controlの中の文字列の特定の文字だけのフォントを変えたいのでしょうか?
とりあえず現状のコードを載せてください。
>m_Font
は前述どおり、クラスのメンバ変数にしないといけません。
::OnInitialUpdate()の中に、
CFont m_Font;
m_Font.CreateFont(24,0,0,0,FW_NORMAL,FALSE,FALSE,FALSE,SHIFTJIS_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH|FF_DONTCARE, L"MS ゴシック");
m_edit1.SetFont(&m_Font);を書いています。
後は、必要なところで、
CString ss;
m_edit1.SetWindowText(ss);
で表示させています。 単にEdit Controlのフォントの大きさを変えたいだけです。よろしく。
>::OnInitialUpdate()の中に、
>CFont m_Font;
間違い。
ローカル変数にするとその関数を抜けるとm_Fontの寿命が尽きるため、
>CFontの変数はEDITが存在する間必要になるので
という条件に反する。
どう対応すべきかは記述済み。
というか、変数名の頭に m_ を着けるのは メンバ変数のXXX という意味合いで着けるのが
一般的です。
Blueさん、旨く大きな文字に変わりました。
m_edit.SetFont(&m_Font);でセットされるのであれば、ローカル変数でも好いかと思いました。2個一で動いているのですね。
有難うございました。
しかし、FONTを20以上にすると、大きくはなるのですが、太字になってしまいます。この方が、見やすくて好いですがね。
m_Font.CreatePointFont(240,L"MS ゴシック");でも試してみました。同様に200以上になると太字になりましたが、この関数でも同様に使えます。
どちらでも好いでしょうかね?
とにかく旨く行きました。感謝感謝です。
Blueさんに教えていただきテストが旨く行きましたので、実際のプログラムの方も修正しテストしました。バッチリデス。有難うございました。また、何かの時は、よろしくお願いします。
編集 削除