エディットボックス未入力を認識するには? – プログラミング – Home

エディットボックス未入力を認識するには...
 
通知
すべてクリア

[解決済] エディットボックス未入力を認識するには?


ふゆこ
 ふゆこ
(@ふゆこ)
ゲスト
結合: 23年前
投稿: 16
Topic starter  

こんにちは。
ダイアログベースのプログラムでエディットボックスにlong型のメンバ変数を追加しています。
このボックスには正の数値のみ入力したいので、メッセージEN_CHANGEで
UpdateData(Ture)で入力値を取得し正の数かを判断させています。
ところが、エディットボックスの値を変更するためにいったんクリアすると
この段階でUpdateData(Ture)の中で(?)「数値を入力してください」というエラーが表示されます。
何も入力されていない状態はlongでないから型が違うのでしょう。
しかし「何も入力されてない」と認識するためにはUpdateData(Ture)でコントロールの値を
メンバ変数にセットしないといけないと思いますが、これを回避するにはどうすればよいでしょうか?


引用未解決
トピックタグ
CdS
 CdS
(@CdS)
ゲスト
結合: 24年前
投稿: 176
 

というかエディットのプロパティで「スタイル」の「番号」をチェックすればいいのでは?
あとは型をDWORD(unsigned long)にするとか。

汎用的に使うならコントロールとしてメンバ変数を登録する方がいいと思いますよ。
使い方によっては便利かもしれませんが、UpdateDataって内部で何しているかよく分かりませんし。


返信引用
ん
 ん
(@ん)
ゲスト
結合: 23年前
投稿: 106
 

こんな感じでエディットボックスの内容有無を見るってのはダメっすか?

if( GetDlgItem(IDC_EDIT1)->GetWindowTextLength() == 0)
{
AfxMessageBox(エディットボックスの内容がありません) ;
}


返信引用
ふゆこ
 ふゆこ
(@ふゆこ)
ゲスト
結合: 23年前
投稿: 16
Topic starter  

ご回答ありがとうございます。
CdSさんの「コントロールとしてメンバ変数を登録する」方法は、試してみましたが、
今のレベルではコントロールメンバ変数から値を取り出して処理する方法が分からないので調べてるところです (^^;
(GetWindowTextでまた別の変数に格納する必要があるんでしょうか?それでは二度手間なので違うような気がして・・・)
でも「スタイル」の「番号」のチェックで数字以外は入らなくなるのは確認できました。
んさんの方法で入力有無はチェックできました。
この年末年始でもっと勉強したいと思います。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました