-PR-
解決済み

ボタンの表示の色、フォントを変更したい

  • すぐに回答を!
  • 質問No.95323
  • 閲覧数4843
  • ありがとう数5
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 71% (83/116)

VC++でプログラミングしています。
MFCのダイアログベースのEXEを造っています。
ダイアログにはボタンとエディットボックスを貼り付けています。
私がやりたいのは以下のことです。

・ボタンの色を設定したい
・ボタン、エディットボックスに表示する文字の色を設定したい
・ボタン、エディットボックスに表示する文字のフォント(サイズ)を設定したい

プロパティでサイズ変更すると全体に反映されてしまうので、個々の
コントロールについて制御したいと思っています。

ヘルプで調べて、それらしい関数を見つけるのですが使い方がわかりません。
VCを始めたばかりで、クラスの理解がまだ浅いです。。。
関数の説明は理解できても、「じゃあ、コードはどう書くの?」という状態です。
「○○ は ×× のメンバではありません」と、よく怒られてます。。。

識者の方、ご教授願います。
コードがどうなるのか知りたいので、簡単なサンプルコードがあると助かります。

また、質問ではないのですが、「この関数は○○をする」というのではなく、
「○○をするにはこの関数を使う」という様に調べられる、お勧めの書籍、
Webなどがありましたら教えてください。
今後の勉強に役立てたいと思っています。
通報する
  • 回答数3
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.1
レベル7

ベストアンサー率 18% (4/22)

下2つについては以下でいけると思います。

class CMyDlg : CDialog
{
public:

  CFont m_cFont; //Dlgクラスのメンバとして用意
/*
  他のメンバ
*/
  virtual BOOL OnInitDialog(); //初期化

};


BOOL CMyDlg::OnInitDialog()
{
  //TODO:ここでFontを設定しておく(文字の色、サイズなど)

  //Fontを設定
  ((CButton *)GetDlgItem(IDC_BUTTON))->SetFont(&m_cFont,TRUE);

  //TODO:その他の初期化

  return TRUE;
}
//見易さのために、全角スペースを使っています;;

一番上はBitmapを貼り付けるか、CWndのメンバ関数を使って
塗りつぶすかどうかだと思います。

MFCではなく、C++Builderのページなのですが、少しいじればMFCでも使えるので、参考URLに示しておきます。
補足コメント
nabezo-

お礼率 71% (83/116)

回答ありがとうございます。
フォント設定では以下のようなコードにしてみました。

m_cFont.CreateFont(40, 0, 0, 0, FW_HEAVY, 0, 0, 0, ANSI_CHARSET,
OUT_CHARACTER_PRECIS, CLIP_CHARACTER_PRECIS,
DEFAULT_QUALITY, DEFAULT_PITCH, NULL);

これで、ボタンに表示する文字のサイズは変更できました。
何か使い方が違うとか、フォント設定には別の関数があるよ、などの
指摘があればアドバイスをお願いします。
また、この関数には色の設定はありませんでした。
色の設定の関数を知っていれば教えていただけないでしょうか。
#探したんですけど、「これだ!!」というのが見つかりませんでした。。。
あと、エディットボックスの文字のフォントを変更する場合、「CButton *」と
キャストしている部分はどうなるのでしょうか。

いろいろとお手数おかけしますが、よろしくお願い致します。
投稿日時 - 2001-06-26 14:43:00
お礼コメント
nabezo-

お礼率 71% (83/116)

アドバイス、ありがとうございました。
大変参考になりました。
#お礼が遅くなり、すみません。
投稿日時 - 2001-07-05 20:03:45
関連するQ&A
-PR-
-PR-

その他の回答 (全2件)

  • 回答No.2
レベル8

ベストアンサー率 60% (20/33)

MSDNライブラリ(VisualStudio付属)で「CYellowEdit」と入れて検索してみてください。 すると、「返送メッセージの処理 : 再利用可能なコントロールの例」というところにサンプルソースが載っています。
MSDNライブラリ(VisualStudio付属)で「CYellowEdit」と入れて検索してみてください。
すると、「返送メッセージの処理 : 再利用可能なコントロールの例」というところにサンプルソースが載っています。


  • 回答No.3
レベル8

ベストアンサー率 60% (20/33)

MFCなら ----メンバ変数---------- CFont m_pFont; CButton m_Button1;//ダイアログデータ ----------------------- -------------プログラム------------------- void CHogeDlg::SetMyFont(){ m_pFont = new CFont; m_pFont->Cre ...続きを読む
MFCなら
----メンバ変数----------
CFont m_pFont;
CButton m_Button1;//ダイアログデータ
-----------------------
-------------プログラム-------------------
void CHogeDlg::SetMyFont(){
m_pFont = new CFont;
m_pFont->CreatePointFont(1000,"MS 明朝");
m_Button1.SetFont(m_pFont);
}
------------------------------------------
とやれば、比較的簡単にフォントの変更ができますよ。
お礼コメント
nabezo-

お礼率 71% (83/116)

アドバイス、ありがとうございました。
大変参考になりました。
#お礼が遅くなり、すみません。
投稿日時 - 2001-07-05 20:04:21
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


新大学生・新社会人のパソコンの悩みを解決!

いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ