为什么非模态对话框总在最前面?

来源:百度知道 编辑:UC知道 时间:2024/06/16 15:12:50
SDI工程,通过菜单创建了一个非模态对话框,pDlg->Create(IDD_DIALOG,NULL),如代码所示,创建时并未指定父窗口指针,但在主界面获得焦点后,通过::SetWindowPos()和::BringWindowtoTop()都没能把非模态对话框遮挡住,请问究竟该如何解决这个问题?

把非模态对话框的父窗口设为屏幕。
Create( IDD_DIALOG, GetDesktopWindow() );

  软件这样设置的,没什么原因。

  非模态(Modeless)对话框,又叫做无模式对话框,当用户打开非模态对话框时,依然可以操作其他窗口。例如,Windows提供的记事本程序中的【查找】对话框。【查找】对话框不会垄断用户的输入,打开【查找】对话框后,仍可与其他用户界面对象进行交互。用户可以一边查找,一边修改文章,这样就大大方便了使用。

我认为,就是因为简单。