将这个非模式对话框作为主对话框的子窗口。  
  比如:  
   
  BOOL   CDlg1::OnInitDialog()  
  {  
  CDialog::OnInitDialog();  
  CDlg2   *pDlg2   =   new   CDlg2   ;  
  pDlg2->Create(IDD_...,this);  
  pDlg2->ShowWindow(SW_SHOW);  
  pDlg2->MoveWindow(...);  
  return   TRUE;  
  }  
   
  dlg2属性设为:  
  style     child  
  取消   Title   Bar  
  Border   none 


/////////////////////////////////////////////////////////////
一个对话框资源,在资源编辑器里面设计时样式:
child
无边框
无系统菜单
无标题
这主要是为了作为子窗口嵌入TAB页用
现在,我又想单独使用它,让他能像普通对话框那样弹出,又有标题栏之类的
我用m_nMode来区分使用的模式,在OnInitDialog()中加入了一下代码:
if(0 != m_nMode)
{
//非子窗口模式
DWORD dwStyle;
dwStyle=GetStyle();
ModifyStyle(dwStyle,WS_DLGFRAME|WS_POPUP|WS_VISIBLE|WS_BORDER,SWP_SHOWWINDOW);
}
结果运行后,找不到弹出的对话框了,调用者窗口也无法操作了。
怎么解决??

后来我改用下面的代码,能用是能用了,但是问题N多:
if(0 != m_nMode)
{
RECT rect;
GetWindowRect(&rect);
ScreenToClient(&rect);
//单独使用模式
DWORD dwStyle;
dwStyle=GetStyle();
ModifyStyle(dwStyle,
WS_DLGFRAME|WS_POPUP|WS_VISIBLE|WS_BORDER,
SWP_SHOWWINDOW|SWP_FRAMECHANGED);
SetParent(GetDesktopWindow());
rect.right+=30;
rect.bottom+=40;
ClientToScreen(&rect);
MoveWindow(&rect);
EnableWindow();
ShowWindow(SW_SHOW);
//SetWindowPos(&CWnd::wndTopMost,0,0,rect.right-rect.left+50,
//rect.bottom-rect.top+60,SWP_NOMOVE);
//Invalidate();
}