0

mfc から Qt への移行を使用しており、Mfc アプリで Qt ダイアログを表示しています。winEvent ハンドラで QWinWidget を削除してもよろしいですか? 問題は、メインの mfc ウィンドウが閉じられたときに、My Mfc アプリケーションで開いているすべての Qt ダイアログを自動的に削除したいということです。WM_DESTROY はすべての子ウィンドウ (および Qt ウィジェットも) に対して送信されるため、 QwinWidget winEvent ハンドラーに次のコードを追加しました。

QWinWidget::winEvent(MSG * message, long * result)
       {
                 ........
                 if(message->message == WM_DESTROY )
                     deleteLater();
                 return false;
       }

誰かこれにコメントしてくれませんか ありがとう

4

1 に答える 1

0

呼び出しの安全性に関して厳密にdeleteLater()言えば、通常、そのクラス内で実行されている関数内で行うのは安全です。制御がイベント ループ関数に戻るまで、オブジェクトは削除されません。私が見ることができる唯一の潜在的な問題は、マルチスレッド コードに関するもので、イベント ハンドラーを備えたウィジェットには当てはまらない可能性があります。

于 2009-10-12T18:14:10.737 に答える