これ何て呼びますか

今MFCでダイアログを作成いたしました。

IDC_EDIT1というエディットボックスが1つあります。

そのほかにもいろいろありますが、今回はこのエディットボックス内で
SetDlgItemInt( )を使って処理したいのです。

//処理内容
double a;
a = 10.5;
SetDlgItemInt(IDC_EDIT1, (int)a);

以上のようになっています。
SetDlgItemIntの第2引数がUINTなので
そのまま
SetDlgItemInt(IDC_EDIT1, a);
とすると当然怒られてしまう訳ですが、

SetDlgItemInt(IDC_EDIT1, (int)a);
とすると逆にエディットボックス内には

[10]としか表示されません。

正しく表示させるにはどうしたらよいのでしょうか。

ご教授の程よろしくお願いいたします。

A 回答 (2件)

 こんにちは。


 SetDlgItemInt()は少数を表示しませんので、かわりにSetDlgItemText()を使用します。
 以下の様な感じです。

double a = 10.5f;
CHAR buf[80];
::sprintf(buf, "%.1f", a);
//::sprintf(buf, "%.3f", a);←こちらも試して見ましょう
SetDlgItemText(IDC_EDIT1, buf);
    • good
    • 0
この回答へのお礼

解決しました。

double a = 10.5f;

double a = 10.5;

でも正常に作動するみたいですね。

すぐ解決することができました!
ありがとうございました☆

お礼日時:2008/12/19 17:25

SetDlgItem"Int"ですから、当然整数値しか扱えません。


CString辺りに変換してSetDlgItemText()で表示するしかないのでは?
    • good
    • 0
この回答へのお礼

なるほど。

SetDlgItemDoubleとかいう関数もあっていいと思うのは自分だけでしょうか(^^;

ご回答の程ありがとうございました。

お礼日時:2008/12/19 17:20

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

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


おすすめ情報