void CwlcomeDlg::OnBnClickedOk()
{
// TODO: 在此添加控件通知处理程序代码

AFX_MANAGE_STATE(AfxGetStaticModuleState());
{CZLZDlg  dlg_z;
    dlg_z.DoModal();
HWND * pWnd=::FindWindow(NULL,"IDD_DIALOG1");//获得当前窗口句柄 , 你的窗口的名字
    pWnd->DestroyWindow();
  

} }

解决方案 »

  1.   

    ::FindWindow返回的是HWND 不是 HWND*
      

  2.   

    HWND hWnd=::FindWindow(NULL, _T("IDD_DIALOG1"));
      

  3.   

    void CwlcomeDlg::OnBnClickedOk()
    {
    // TODO: 在此添加控件通知处理程序代码

    AFX_MANAGE_STATE(AfxGetStaticModuleState());
    {CZLZDlg  dlg_z;
        dlg_z.DoModal();
    HWND hWnd=::FindWindow(NULL, _T("IDD_DIALOG1"));//获得当前窗口句柄 , 你的窗口的名字
        hWnd->DestroyWindow();
      

    } }请问楼上,改了之后,编译为什么出现 error C2228: “.DestroyWindow”的左侧必须有类/结构/联合类型
      

  4.   

    不是那么关闭的,你可以发送WM_CLOSE消息到那个HWND窗口句柄
    HWND hWnd=::FindWindow(NULL, _T("IDD_DIALOG1"));
    if(hWnd)
    {
     ::PostMessage(hWnd, WM_CLOSE, 0, 0);
    }
      

  5.   

    把CZLZDlg dlg_z 定义 放到你的头文件中定义 测试
      

  6.   

    void CwlcomeDlg::OnBnClickedOk()
    {
    // TODO: 在此添加控件通知处理程序代码

    AFX_MANAGE_STATE(AfxGetStaticModuleState());
    {CZLZDlg  dlg_z;
        dlg_z.DoModal();
    HWND hWnd=::FindWindow(NULL, _T("IDD_DIALOG1"));//获得当前窗口句柄 , 你的窗口的名字
        
    //DestroyWindow();
      
    if(hWnd)
    {
     ::PostMessage(hWnd, WM_CLOSE, 0, 0);
    }
    } }
    编译没问题了,为什么点击确定后原来的对话框不关闭呢?
      

  7.   

    你看hWnd是否真的找到了吗?lz真有耐性,这么小一个问题等这么久????
    你是基础知识太薄弱了,多看书吧,理论上知识要够,再写代码。
      

  8.   

    清秋同志,帮帮忙啊,我不是做这个的但是要用到这些东西,看书我也不知道看什么书,真的很感谢你,帮帮忙啊,hWnd为什么没找到上一个对话框的句柄
      

  9.   


    void CwlcomeDlg::OnBnClickedOk()
    {
    // TODO: 在此添加控件通知处理程序代码AFX_MANAGE_STATE(AfxGetStaticModuleState());             
    /*注:dlg_z是要打开的对话 框,IDD_DIALOG1是要关闭的对话框的ID,这两个不是同一个*/    
    {CZLZDlg dlg_z;
      dlg_z.DoModal();
    HWND hWnd=::FindWindow(NULL, _T("IDD_DIALOG1"));//获得当前窗口句柄    
    //DestroyWindow();
       
    if(hWnd)
    {
     ::PostMessage(hWnd, WM_CLOSE, 0, 0);
    }
    }}
    功能为什么实现不了
      

  10.   

    IDD_DIALOG1 窗口名称还是ID?
      

  11.   

    直接PostMessage(WM_CLOSE, 0, 0);试试