掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
Dialogで負値の値を入れるには? (ID:72405)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
>そのDDXということは ひとつ文字をいれると反応することでしょうか いやちがいます、DDXとは別な話です 簡単に言うと、コントロールアイテムと結びついた変数(これがDDX) のことを言ってます。イベント(反応のこと)とは基本的に無関係です。 たしかに符号付き整数ということでメンバー変数を作成したのですから マイナス符号も受け付けるのが正当かなと思いますが、UpdateData() をここで(OnChangeXXXX())で動かすとこの様なことが起こりますという 仕様だと思います。(負記号が無ければ実際動きますし・・・・ (間違っているかもしれませんが) で、ですね、OnKillfocusXXXX()でUpdateData()して計算するということが一番近い手段だと思うのです これでしたらマイナス値も入れることができます。 でも絶対、OnChangeXXXX()でデータを取って計算したいというのでしたら、 DDX変数を文字列(CString)で宣言し、自分で文字列チェック&整数変換して 計算する。 もしくは GetDlgItem(ITEM)でじかに文字列を取りこみ、文字列チェック(整数正当性) 後に整数値に変換するという形にするのが良いのかなと思います。 例をちょこっとかいておきますね xxxx::OnChangeXXXX(){ CEdit *ed = (CEdit *)GetDlgItem(ID_ITEM_XXXX); CString EdData; ed->GetWindowText(EdData); int dat = atoi(EdData); } で入力されている今の文字列を見ることができますよ、いろいろありますが、、、、 無論上記ソースはおおざっぱな上検証してないです。 (これじゃ足りないのですけど、まあ違う話になってしまいますから、基本中の基本ということで) ではでは。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.