- ベストアンサー
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]としか表示されません。 正しく表示させるにはどうしたらよいのでしょうか。 ご教授の程よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 SetDlgItemInt()は少数を表示しませんので、かわりにSetDlgItemText()を使用します。 以下の様な感じです。 double a = 10.5f; CHAR buf[80]; ::sprintf(buf, "%.1f", a); //::sprintf(buf, "%.3f", a);←こちらも試して見ましょう SetDlgItemText(IDC_EDIT1, buf);
その他の回答 (1)
- D-Matsu
- ベストアンサー率45% (1080/2394)
SetDlgItem"Int"ですから、当然整数値しか扱えません。 CString辺りに変換してSetDlgItemText()で表示するしかないのでは?
お礼
なるほど。 SetDlgItemDoubleとかいう関数もあっていいと思うのは自分だけでしょうか(^^; ご回答の程ありがとうございました。
お礼
解決しました。 double a = 10.5f; は double a = 10.5; でも正常に作動するみたいですね。 すぐ解決することができました! ありがとうございました☆