有没有办法让模态对话框一直置顶

解决方案 »

  1.   

    在BOOL C***Dlg::OnInitDialog()函数里面添加:SetWindowPos(&CWnd::wndTopMost, 0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE);
      

  2.   

    那下面这样的选择对话框要置顶,怎么加
    CFileDialog   OpenFileDialog(TRUE);
    OpenFileDialog.DoModal();
      

  3.   

    http://www.codeguru.com/cpp/w-d/dislog/commondialogs/article.php/c1845
      

  4.   

    终于解决了。
    本来主窗体是由另一程序shell调用并隐藏的,如果单独让主窗体置顶,没有用。按cnzdgs的提示,发现
    在OnInitDialog加入
    SetWindowPos(&CWnd::wndTopMost, 0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE);
    再在OpenFileDialog.DoModal()前加上
    SetWindowPos(OpenFileDialog.GetSafeHwnd(),HWND_TOP,0,0,0,0,SWP_NOSIZE|SWP_NOMOVE);竟然实现了置顶,去掉两处中的任意一处都不能置顶,真是太奇怪了。