アプリ版:「スタンプのみでお礼する」機能のリリースについて

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

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

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

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

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

また、質問ではないのですが、「この関数は○○をする」というのではなく、
「○○をするにはこの関数を使う」という様に調べられる、お勧めの書籍、
Webなどがありましたら教えてください。
今後の勉強に役立てたいと思っています。

A 回答 (3件)

MFCなら


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

アドバイス、ありがとうございました。
大変参考になりました。
#お礼が遅くなり、すみません。

お礼日時:2001/07/05 20:04

MSDNライブラリ(VisualStudio付属)で「CYellowEdit」と入れて検索してみてください。


すると、「返送メッセージの処理 : 再利用可能なコントロールの例」というところにサンプルソースが載っています。
    • good
    • 1

下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に示しておきます。

参考URL:http://market.agr.tottori-u.ac.jp/ken/tech.html

この回答への補足

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

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
    • good
    • 3
この回答へのお礼

アドバイス、ありがとうございました。
大変参考になりました。
#お礼が遅くなり、すみません。

お礼日時:2001/07/05 20:03

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A