Mfc 当主对话框在第二个监视器上时显示弹出对话框

Mfc 当主对话框在第二个监视器上时显示弹出对话框,mfc,multiple-monitors,Mfc,Multiple Monitors,我有一个有趣的情况 您可以运行任何CDialog派生的应用程序,并将其移动到第二个监视器上 然后调用一个弹出对话框。我发现弹出对话框显示在主监视器的中心,而不是父对话框的中心 例如: void CMeetingScheduleAssistantDlg::OnOptionsPublishersDatabase() { try { CPublishersDatabaseDlg dlgPublishers(this); dlgPublishers.Do

我有一个有趣的情况

您可以运行任何
CDialog
派生的应用程序,并将其移动到第二个监视器上

然后调用一个弹出对话框。我发现弹出对话框显示在主监视器的中心,而不是父对话框的中心

例如:

void CMeetingScheduleAssistantDlg::OnOptionsPublishersDatabase()
{
    try
    {
        CPublishersDatabaseDlg dlgPublishers(this);

        dlgPublishers.DoModal();
    }
    catch (_com_error e)
    {
        LPCTSTR szError = e.ErrorMessage();
        AfxMessageBox(szError);
    }
    catch (CException* e)
    {
        e->Delete();
        AfxMessageBox(_T("CException"));
    }
}

当家长在第二个监视器上时,我们应该如何正确地调用以家长为中心的子弹出对话框?

我不能复制这种行为。显示两个对话框的资源定义。还有你的操作系统。可能您正在调用
OnInitDialog
中的
CenterWindow
,这会将您的对话框集中到最近的监视器(不一定是主监视器)@BarmakShemirani,这是一个假警报。我忘了我的窗户记得它最后的位置。这就是为什么它会出现在主监视器上。一切都很好。我认为这是错误的原因是因为CuteFTP Pro的行为方式与此相同。至少我的程序还可以。