私はMFCが初めてなので、ご容赦ください。デュアル スクリーン モニターに全画面表示されるダイアログがあります。このダイアログは、別の非モーダル ダイアログ内でインスタンス化されます (ボタンがクリックされたとき)。何かのようなもの:
void MyCParentDlg::OnBnClickedButton1()
{
dlg2 = new MyChildNonModalDlg();
dlg2->ShowWindow(SW_SHOW);
}
OnInitDialog()
of でMyChildNonModalDlg
、がShowWindow(SW_MAXIMIZE)
呼び出されて、ダイアログが枠なしの全画面表示になります。現在、内部にボタン コールバック イベントがありますMyChildNonModalDlg
。
void MyChildNonModalDlg::onBnClickedBut2() {
// Display images on the dialog one by one for a very long time
}
が実行されてonBnClickedBut2
いて、ダイアログが継続的に更新されているときに、マウスでダイアログの外 (他の画面など) をクリックすると、ダイアログがフォーカスを失ったときにフリーズします!
これはおそらくマルチスレッドで修正できるものであり、内部のプロセスOnBnClickedBut2()
はスレッド内で実行する必要がありますが、スレッドについてほとんど知らない人として、誰かが私を正しい方向に向けるか、実行できるコード例を提供できますか?これ?