我想创建非模态对话框.但是需要根据情况来确定是POPUP还是CHILD.
由于PreCreateWindow消息不响应.
我用CreateIndirect(),但是不成功,我也不清楚原因.
最好有例子代码.

解决方案 »

  1.   

    可以用setwindowlong重新设置窗口的style
      

  2.   

    DWORD dwStyle = GetWindowLong(hWnd,GWL_STYLE);
    if(dwStyle && WS_CHILD)
    {
    dwStyle &= ~WS_CHILD;// 去掉WS_CHILD风格
    dwStyle |= WS_POPUP;// 设置WS_POPUP风格
    }
    else
    {
    dwStyle &= ~WS_POPUP;
    dwStyle |= WS_CHILD;
    }
    SetWindowLong(hWnd,GWL_STYLE,dwStyle);
      

  3.   

    先创建对话框,然后更改风格
    CMyDlg *pDlg = new CMyDlg();
    pDlg->Create(ID_DIALOG,this);
    pDlg->ModifyStyle(WS_CHILD,0);