1. 程式人生 > >MFC視窗動態改變其child模態或popup模態

MFC視窗動態改變其child模態或popup模態

在dialog的虛擬函式 PreSubclassWindow中設定視窗模式

void CMyDlg::PreSubclassWindow()
{
    long lStyle=GetWindowLong(m_hWnd,GWL_STYLE); //獲取風格
    if (m_bChildMode==TRUE) //子視窗模式
    {
        lStyle &=~WS_POPUP;
        lStyle |=WS_CHILD;
    }
    else  //彈出模式
    {
        lStyle &=~WS_CHILD;
        lStyle |=WS_POPUP;
    }
    SetWindowLong(m_hWnd,GWL_STYLE,lStyle); //設定風格
__super::PreSubclassWindow(); }

注意在建立之前就設定好 m_bChildMode 變數,建立後再設定無效。