非模式对话框就像PhotoShop里面的Toolbar,总显示在其父窗口上面。如何将非模式对话框显示在父窗口后面呢? 一种解决办法是: 建立非模式对话框时Create的第二个参数用GetDesktopWindow(), m_pDlg->Create(IDD_,GetDesktopWindow()); 如果需要恢复Toolbar的属性: m_pDlg->SetWindowPos(&wndTopMost,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE);
现在有出现了一个问题:系统的任务栏上出现了非模式对话框的图标,好像该对话框和父窗口是两个应用。解决的办法是: 1 定义对象 CWnd *m_pWnd,该对象的父窗口为GetDesktopWindow,设置该对象ShowWindow(SW_HIDE); 2 将非模式对话框的父窗口设置为m_pWnd。
|