void ShowDlg(CWnd* pParentWnd, CWnd* pChildWnd) 
{

CditDlg *pDlg = new CDvdMenuEditDlg();
pDlg ->Create(IDD_EDIT_DLG);

pDlg -> ShowWindow(SW_SHOWNORMAL); *pChildWnd = &pDlg ;////////////} 

解决方案 »

  1.   

    void ShowDlg(CWnd* pParentWnd, CWnd** pChildWnd)
      

  2.   

    *pChildWnd = &pDlg ;编译都通不过,把指针变量的地址,赋给CWnd的对象怎么可以呢?
      

  3.   

    void ShowDlg(CWnd* pParentWnd, CWnd** pChildWnd) 
    {

    CditDlg *pDlg = new CDvdMenuEditDlg();
    pDlg ->Create(IDD_EDIT_DLG);

    pDlg -> ShowWindow(SW_SHOWNORMAL); *pChildWnd = &pDlg ;////////////} 也不行呀,怎么回事?
      

  4.   

    *pChildWnd = pDlg ;////////////
      

  5.   

    *pChildWnd = pDlg 这才到点子上了,谢谢
    这个写是不是程序很不直观呀,是不是定义一个指针变量的引用好些
    如:
    CWnd &pDlg = *pChildWnd ;有没有指量变量的引用,迷糊了
      

  6.   

    void ShowDlg(CWnd* pParentWnd, CWnd* & pChildWnd) 
      

  7.   

    *pChildWnd = pMenuEditDlg;还指针越界,不是不在定义还要CWnd *pChildWnd 申请空间呢?
      

  8.   

    不是说函数里定义的局部变量会在函数结束时自动销毁,就算是没有手动调用delete,但是这样处理没有潜在的问题吗?
      

  9.   

    *pChildWnd = pDlg;//////////////指什越界了,是不是在调用CWnd **pChildWnd = NULL;///要为*pChildWnd申请空间???*pChildWnd = new CWnd*;pShowDlg(this, pChildWnd);
      

  10.   

    按理说 : void ShowDlg(CWnd* pParentWnd, CWnd* pChildWnd) 
    {

    CditDlg *pDlg = new CDvdMenuEditDlg();
    pDlg ->Create(IDD_EDIT_DLG);

    pDlg -> ShowWindow(SW_SHOW); pChildWnd = pDlg ;} 
    pChildWnd能返回new后的地址的,这个是对的,我不知道楼主是否实现有问题,我在[email protected] 邮箱中放了一个例子,可下载去看下,密码:temp888888
      

  11.   

    你的问题出在变量的作用域上,将CditDlg *pDlg = new CDvdMenuEditDlg();写在函数体外你的问题就可以解决了。
      

  12.   

    xxfyath(〖水滴石穿〗) 谢谢你了,你的是一个创建子窗口的例子,我是想知道函数指针怎么带出指针变量的值.
      

  13.   

    不是已经给出来以吗?void ShowDlg(CWnd* pParentWnd, CWnd* & pChildWnd);
      

  14.   

    void ShowDlg(CWnd* pParentWnd, CWnd* & pChildWnd);这个方法是可行滴!