ちょっとヘンな質問かもしれませんが、
勉強途中の初心者と言うことで寛大な対応をm(__)m
Q1.DDVのチェックが実行されるのはリターンキーを押した時だけですか?
MSDNを見ると、「[OK] をクリックしてダイアログ ボックスへの入力を確定」と
あったのですが、TABキーでフォーカスが外れた場合は入力の確定ではないのでしょうか?
ノーチェックなんですか?
Q2.仕方が無いのでDDVを辞めました。EditBoxからのLOSTFOCUS時に、
自作のチェックを行うようにしました。あるチェックボックスがあるのですが、
エディットボックスに無効な値を入力後、チェックボックスをクリックすると
エラーは発生しますが、チェックボックスにチェックが付けられてしまいます。
このチェックが付けないようにするには、LOSTFOCUS時の処理の中で、
「エラーだったらチェックボックスを無効にする」って処理を書かなければ
ならないのでしょうか?
とても稚拙な質問だとは思いますが悩んでます。
宜しくお願いします。環境はVC6++です。
ちなみに、DDV/DDXってのはSDIやMDIでは使えないのでしょうか?
「Dialog」Data・・・・・・って言うぐらいですから、当たり前かも知れませんが。
ちょっと気になったもので。
> TABキーでフォーカスが外れた場合は入力の確定ではないのでしょうか?
ダイアログボックスに入力された全体に対しては確定ではない。
> このチェックが付けないようにするには、LOSTFOCUS時の処理の中で、
>「エラーだったらチェックボックスを無効にする」って処理を書かなければ
> ならないのでしょうか?
それ以外にチェックするタイミングがないのなら、そうでしょうね。
> ちなみに、DDV/DDXってのはSDIやMDIでは使えないのでしょうか?
やってみればいい。
>ちなみに、DDV/DDXってのはSDIやMDIでは使えないのでしょうか?
>「Dialog」Data・・・・・・って言うぐらいですから、当たり前かも知れませんが。
そもそもSDIやMDIでもダイアログは使えます。
DDVってUpdateData(TRUE)を呼んだときに動くのでは無いかと思います。
そもそも、DDVにしてもDDXにしてもダイアログでのデータの取得と設定を
簡易に行うためのものなので万能ではありませんし、
細かいことをしたいのであれば、自分でコードか書かなくてはだめです。
デフォルトのOKボタン(IDOKのボタン)が押されると確かデフォルトの実装では
UpdateData(TRUE)を呼ぶようになっていたと思います。
ですから、言われているようなフォーカスが移動した時にこれは動きませんし、
仮にUpdateData(TRUE)を呼んだとすると未入力の項目にまでチェックが
かかってしまうのでどちらにしても無理ですね。
既に書いていますが、DDVにしてもDDXにしても簡易に操作する為の方法を
Microsoftが提供してくれているだけです。
あくまでも簡易なのですから、それで満足できないのであれば、
自分でコードを書きましょう。
毎回使うようなものなのであれば、うまく設計してライブラリ化すれば、
次からは楽が出来るかもしれませんよ。
あと、開発環境を持っていて勉強中の身なのであれば、
επιστημηさんが書かれているように取り敢えず試してみるのも
一つの手です。試してみてわからない部分を聞くようにした方が
より的確なアドバイスがもらえる可能性が高いです。
もちろん、試した内容をきちんと提示してもらう必要はありますけれど。