2016-04-19 23 views
0

私は、画像を表示してから一定時間後に消えることを含むプロジェクトに取り組んでいます。私はその目的のための正しい機能はThread::Sleep()だと思ったが、うまくいかないようだ。VC++でシンプルスリープ()が動作しません

this->pictureTConf->Visible = true; 
Thread::Sleep(5000); 
this->pictureTConf->Visible = false; 

このコードでは、いつでも画像が表示されません。何かご意見は?ありがとう。

PD:Visual Studio、Windowsフォーム、およびVC++を使用します。

+0

スレッドをスリープさせるということは、画像を描画しないようにウィンドウを更新することを含め、これらの2つのステートメントの間に何もしないことを意味します。代わりにコールバックを持つタイマーを使用してください。 –

答えて

0

メンバ変数をtrueに設定するだけでは、Sleep()を呼び出すとコードでメッセージループが実行されないため、十分ではありません。代わりにこれを試してみてください:(これは単なるサンプルを目的としており、あなたが「本物」のアプリケーションでこれを行うべきではありません。)

this->pictureTConf->Visible = true; 
this->pictureTConf->Refresh(); 
Thread::Sleep(5000); 
this->pictureTConf->Visible = false; 
this->pictureTConf->Refresh(); 

また、チャックが指摘したようにあなたは、タイマーを使用している場合、あなたはいけませんRefresh()を呼び出す必要があります。すべてがうまくいくでしょう。

関連する問題