有一普通对话框,类名为cdialog1,我想用两种方式调用该对话框,
一:domodal,有标题栏。
二:嵌入到其它视图中做为子视图显示,无标题栏,属性为CHILD。
求高手帮忙。

解决方案 »

  1.   

    第一个必需是弹出窗口。
    第二个在视图内动态创建窗口就是了,指定创建窗口在视图上的位置,其所采用的窗口资源即可,具体参看CDialog的MSCN帮助上都有。
      

  2.   

    二:我设置对话框属性为CHILD后再设置父窗口后最小化程序就死机,若不设置父窗口则新窗体不是嵌入到父窗口当中的。
      

  3.   

    一般情况下,很少有将对话框贴到视图上的。
    试一下对话栏吧,它可以和视图一样,浮在框架上,功能与对话框差不多,上面可以任意摆放控件!
    CDialogBar类。
      

  4.   

    也就是想可以DOMODAL出来,也可以加到TAB属性页中显示。
      

  5.   

    我还是没明白你想实现什么需求
    一就是Domodal
    二就是Create
    有什么问题呢?
      

  6.   

    Create时要将属性设为CHILD,无标题栏,还要设置父窗口,总是不成功。
    我设置了后每次最小化窗口就死了。
      

  7.   

    我好像知道你什么意思了
    对话框的属性是从资源模板带过来的
    可以先create出来在通过ModifyStyle修改试试看
      

  8.   

    就是这么做的呀,但运行后最小化就没响应了,domodal出来的没问题,大侠有没有代码呀?我用手机上网的,贴代码不方便。
      

  9.   

    就是最小化以后就再也回不来了,被其它窗口挡住后被挡的地方就是一片灰。
    这是我的代码
    CDialog1 *dlg
    dlg=new cdialog1()
    dlg->create(IDD_DIALOG1,this)
    dlg->Modifystyle(WS_CAPTION|WS_POPUP|WS_CHILD,SWP_FRAMECHANGED)
    dlg->Modifystyleex(1,WS_EX_NOPARENTNOTIFY)
    dlg->Setparent(this)
    dlg->showwindow(true)
      

  10.   

    dlg->Modifystyle(WS_CAPTION|WS_POPUP|WS_CHILD,SWP_FRAMECHANGED)
    这句有问题吧
    你去除了WS_CAPTION|WS_POPUP|WS_CHILD这些属性?
    另外SWP_FRAMECHANGED是通过Modifystyle添加么
      

  11.   

    要dialog 适应tab的大小
    CRect rect;.
    .
    .
    CDialog* dlg = new CDialog;
    .
    .
    dlg->Movewindonw(&rect);
    .
    .最小化不死机!
      

  12.   

    我终于明白你什么你意思了
    试试以下代码吧
    pTest->Create(CTestDlg::IDD);
    pTest->ModifyStyle(WS_CAPTION|WS_CHILD, 0);
    pTest->SetParent(this);
    pTest->ShowWindow(SW_SHOW);
      

  13.   

    p T e s t - > C r e a t e ( C T e s t D l g : : I D D,this ) ; p T e s t - > M o d i f y S t y l e ( W S _ C A P T I O N | W S _ C H I L D , 0 ) ;
     p T e s t - > S h o w W i n d o w ( S W _ S H OW ) ;
    这样可以,未加这面这句就不死,但移动时不跟着父窗体走。
    p T e s t - > S e t P a r e n t ( t h i s ) ;
     
      

  14.   

    dlg1->SetParent(this);移动时不跟着父窗体走这个问题后来是怎么解决的,LZ支招哈。
      

  15.   

    在资源的属性里设style=child就不响应,但在create之后设就可以,像这样
    pTest->Create(CTestDlg::IDD,this);
    pTest->ModifyStyle(WS_CAPTION|WS_CHILD, 0);
    pTest->ShowWindow(SW_SHOW);
    靠,VC真是个没谱的东西,还是远离比较好。