我定义了一个form,里面做的是treelist,我现在想在一个dialog上显示这个form,应该怎么做。
我也试了在属性页做treelist,但是加到dialog上也是有错误。
请帮我看看,我想要是在dialog上的某个位置,放上一个form。

解决方案 »

  1.   

    我是在dialog的OnInitDialog()里写的,
    CXXFormView* m_form;
    m_form = new CXXFormView();
    m_form->SetWindowPos(NULL, 50, 20, 500, 450, SWP_NOSIZE | SWP_NOZORDER | SWP_NOACTIVATE); //**
    我调试了下,应该是在//**这里出的问题,请问应该怎么解决?
      

  2.   

    楼主是说如何把form作为子窗口显示在一个dialog中?首先要改变这个form的风格,把它改为child风格,而不是popup或者Overlapped,最好把caption去掉,把system menu去掉。这是Win32 api的方法:hwndForm = CreateDialog(hInst, (LPCTSTR)IDD_FORM_NAME, hWndParent, (DLGPROC)FormProc);
    ShowWindow(g_hwndForm, SW_SHOW );MFC也是类似的。
      

  3.   

    guogangj,你好,我不太确定,但是觉得,应该就是你说的意思,把form做为子窗口显示在一个dialog中。
    这个form里面有个自定义的treelist,在dialog上直观看,就是看到一个类似这个treelist的控件,只不过这个是通过form加在上面的。
    你给出的方法,我有点看不明白,你帮我再详细解释下好么,最好是mfc的,谢谢!
      

  4.   

    我弄了一个,把图贴出来,你看看:
    我觉得用MFC做这个有点别扭,但是实现是完全没有问题的。
    1,创建一个dialog资源,摆些东西上去,我没有你的那个treelist,就拿一个button一个combo来充数吧
    2,把这个dialog资源设置为child风格,默认是Overlapped,现在要设置为child
    3,按<ctrl>+<w>,打开类向导,会提示你创建一个对话框类,假设就叫做CMyFormDialog吧,OK
    4,在你的父对话框类中添加一个成员,CMyFromDialog m_dlgForm;
    5,在父对话框的OnIniDialog中:
    m_dlgForm.Create(IDD_DIALOG_FORM, this);
    m_dlgForm.ShowWindow(SW_SHOW);就好了,当然,我想你肯定要做适当的调整。