【发布时间】:2021-12-19 02:25:42
【问题描述】:
我想制作一个无模式对话框,在没有被激活的情况下显示自己。
我试过了
m_ReminderDialog = new CReminderDialog();
m_ReminderDialog->Create(CReminderDialog::IDD, GetDesktopWindow());
带有对话框模板
IDD_REMINDER DIALOGEX 0, 0, 318, 269
STYLE DS_SETFONT | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME
EXSTYLE WS_EX_TOPMOST | WS_EX_NOACTIVATE | WS_EX_APPWINDOW
...
但它仍然会被激活。
我尝试直接制作一个窗口,而不是在 MFC 中并使用CreateWindowEx,与
WS_EX_NOACTIVATE | WS_EX_APPWINDOW
那行得通。该窗口处于非活动状态,但可以通过单击任务栏按钮将其激活。
我读到对Create 的调用会激活窗口。是这样吗,如果是这样,有没有办法创建不覆盖WS_EX_NOACTIVATE 的无模式对话框?
【问题讨论】: