• ベストアンサー

SetDlgItemInt( ) c++

今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]としか表示されません。 正しく表示させるにはどうしたらよいのでしょうか。 ご教授の程よろしくお願いいたします。

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

  • ベストアンサー
回答No.2

 こんにちは。  SetDlgItemInt()は少数を表示しませんので、かわりにSetDlgItemText()を使用します。  以下の様な感じです。 double a = 10.5f; CHAR buf[80]; ::sprintf(buf, "%.1f", a); //::sprintf(buf, "%.3f", a);←こちらも試して見ましょう SetDlgItemText(IDC_EDIT1, buf);

doborn
質問者

お礼

解決しました。 double a = 10.5f; は double a = 10.5; でも正常に作動するみたいですね。 すぐ解決することができました! ありがとうございました☆

その他の回答 (1)

  • D-Matsu
  • ベストアンサー率45% (1080/2394)
回答No.1

SetDlgItem"Int"ですから、当然整数値しか扱えません。 CString辺りに変換してSetDlgItemText()で表示するしかないのでは?

doborn
質問者

お礼

なるほど。 SetDlgItemDoubleとかいう関数もあっていいと思うのは自分だけでしょうか(^^; ご回答の程ありがとうございました。

関連するQ&A