inputboxで回答を待つ時間を制限して、その制限時間の経過を表示させたいのですが、二つの作業をコンピューターが同時にすることになり、inputboxが表示されると、待機時間の表示が止まり、内部処理だけで、その時間が表示されません。
いろいろやったのですが、それをくぐりぬける良い方法が見つかりません。
二つの作業を交互に割り振る関数か何か、うまい方法があればお教えください。
(visual basic 6.0を使っています)
いろいろやったんなら試したと思いますけど…
refresh で表示更新してみるとか悪あがき的にループさせてDoEventsかけてみるとか。
ん〜ってかインプットボックスに経過時間を表示しているとは思えませんのでやっぱり画面更新すればだいじょうぶだとおもいます。
(手元にVB.NETしかないので効果不明…)
インプットボックスに似せたウィンドウを自作したほうが早いと思います。
CreateWindowとかを駆使すれば、インプットボックスでもできそうですけど、
難しいわりに、あんまり意味がないと思います^^;
インプットボックスに似せたウィンドウには、
一行のエディットボックスと、Timerコントロールか、GetTickCountとDoEventsを組み合わせたものを用意します。
InputBox関数は、"少なくともVB6では"、どうやっても表示中、同期する動作はできないはずです。
(タイマーとかを使えば、別でしょうけど)
inputboxでは無理だ、ということで、textboxを使って回答欄を作り、
do loop はやめて、subを繰り返し、呼び出すことで何とかなりました。
問題提示→回答記入→判定→問題提示・・・です。
芸のないやり方ですが、作動すればOKです。
ご教授、ありがとうございました。
ツイート | ![]() |