ページ 11

自作関数からのテキストウィンドウ更新

Posted: 2012年4月24日(火) 00:38
by ゴンザレス
GetWindowText(hWndCode,old,10240);
sprintf(hits,"%s\r\n%s",new,old);
SetWindowText(hWndCode,new);
Sleep(100);

自作関数からテキストウィンドウを更新したいのですが、更新されません。
SetTimerを使えばうまくいきますが、再起関数ですのでできればこの関数内で更新させたいのですが
うまく更新させるにはどのようにしたらよろしいでしょうか?

Re: 自作関数からのテキストウィンドウ更新

Posted: 2012年4月24日(火) 00:41
by ゴンザレス
ちなみにSetWindowTextの前にMessageBoxでクッションを作ってあげると正常に更新はされました。

Re: 自作関数からのテキストウィンドウ更新

Posted: 2012年4月24日(火) 10:30
by softya(ソフト屋)
ウィンドウの再描画が起こらないからだと思いますが、0.1秒ごとに再描画をするのもどうかとは思います。

【追記】
WM_PAINTメッセージをPostしてみてください。

Re: 自作関数からのテキストウィンドウ更新

Posted: 2012年4月24日(火) 11:24
by ゴンザレス
ありがとうございます。
無事に更新することができました。

それと、更新後に一つ問題が発生したのですが、
再起している関数を強制的に停止させる方法はないのでしょうか?

Re: 自作関数からのテキストウィンドウ更新

Posted: 2012年4月24日(火) 11:28
by softya(ソフト屋)
スレッドで回っているならvolatileな変数で強制停止フラグを作るしか無いでしょう。
もし、単にぐるぐる回しているならスレッドに組み替えて下さい。Windowsアプリとして色々まずいです。