类似桌面网游中弹出 “包裹”或“技能” 的窗体。不会在windows的任务栏出现,出现后一直处于父窗口之上,不影响父窗体执行其他操作。

解决方案 »

  1.   

    msdn 查 非模式对话框
      

  2.   

    (1)//工具栏窗口,在任务栏上没有程序显示,
    //去掉WS_EX_APPWINDOW 添加WS_EX_TOOLWINDOW
    ::SetWindowLong(m_hWnd,GWL_EXSTYLE,GetWindowLong(m_hWnd,GWL_EXSTYLE)&~WS_EX_APPWINDOW|WS_EX_TOOLWINDOW);(2) 如果需要子窗口永远在父窗口上面,而又处于游离状态(就像程序的工具栏),需要设置子窗口的owner为父窗口
    SetOwner()。这样这个窗口哦哭也就不会在任务栏上出现了。楼说说的非模态对话框就是这种情况。(3) 估计你问的是第二种情况。这里有篇关于窗口分析的文章写得很好,有时间看一下。
    http://blog.csdn.net/guogangj/archive/2008/12/06/3460267.aspx阿弥陀佛!
      

  3.   

    CXXDlg *g_pDlg = NULL;
    void CDialog2Dlg::OnButton1() 
    {
    // TODO: Add your control notification handler code here
    g_pDlg = new CXXDlg();
    g_pDlg->Create(IDD_CHILD_DLG, (CWnd*)this);
    g_pDlg->ShowWindow(SW_SHOW);
    }我自己无语了,我前面Create的第二个参数被我弄成了(CWnd*)this->m_hWnd.真是莫大的悲剧。jacky_qiu提供的东西很有用,又学习了