在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 变量,创建后再设置无效。