我建了一个单文档应用程序,在菜单FILE中我加了三个选项T1,T2,T3用来分别打开三个无模式对话框D1,D2,D3,如果D1已经打开,再次点击T1则无法打开,如果D1在D2或者D3的后面,点击T1则把它显示到最上层,其它的同理。我想问:如何来判断窗口只显示一次,如何显示到最上层,请教高手?如果有DEMO就多加100分。

解决方案 »

  1.   


      
      if(D1->IsWindowsVisible())
       {
         SetForegroundWindow();
       }
      else
       {
         ShowWindow(SW_SHOW);
       }
      

  2.   

    每个窗口创建时用 CreateMutex 进行判断是否有窗口已经打开。
    用BringWindowToTop把窗口提前。
      

  3.   

    不知道是否可以为每个窗口专门设置一个bool值,来记录是否开关。
    如果已经开了,就把焦点设置到它上面。我是个新手,不知道用哪个函数,不好意思。
      

  4.   

    if (!m_pDlg->IsWindowVisible())
    {
    m_pDlg->ShowWindow(SW_SHOW);
    }
    else
    {
    m_pDlg->BringWindowToTop();
    }