私は外部dll関数を呼び出す単純なMFCダイアログタイプのウィンドウを持っており、パラメータの1つはコールバック関数です。それは関数パラメータからの情報を使用して作成し、更新ラベルされていない場合、コールバック関数は、別のダイアログウィンドウを作成します。MFCダイアログフォームフリーズ
int userNotify (int iNotificationType, char* pcNotificationText)
{
if(statusDlg)
{
if (!(statusDlg->IsWindowVisible()))
{
statusDlg->ShowWindow(SW_SHOW);
}
statusDlg->showNotification(iNotificationType,pcNotificationText);
} else
{
statusDlg = new StatusDlg(NULL);
statusDlg->Create(StatusDlg::IDD,CWnd::GetDesktopWindow());
statusDlg->ShowWindow(SW_SHOW);
statusDlg->showNotification(iNotificationType,pcNotificationText);
}
return 0;
}
statusDlgはグローバル変数であり、1つの静的なラベルを持つ、非常に単純なMFCダイアログフォームです。そしてそれは1つの特徴を持っています - それは一番上に置かれます。
コールバック時にダイアログフォームが表示され、ラベルに必要な情報が表示されます。しかし、マウスでフォームを移動しようとすると、下の図のように凍ったようになり、ラベルに関する情報はもう更新されません。なぜこれが起こるのですか?この問題を解決するには?