我用这个类创建了5个对话框对象,那么这些对话框对象的ID是多少呢?
   for(int i=0;i<5;i++)
        m_graphdlg[i].Create(IDD_GRAPHDIALOG,this);

解决方案 »

  1.   

    所有对话框ID均为IDD_GRAPHDIALOG。
      

  2.   

    那个ID是资源template ID, 多个dialog当然可以长一个样子,窗口的身份证是HWND.
      

  3.   

    那我为什么通过ID号求句柄,会出现错误呢?
    m_hGraphDlg = ::GetDlgItem(m_hTab, IDD_GRAPHDIALOG);
    PostMessage(pDoc->m_hGraphDlg, WM_RECVDATAOK, pDoc->m_uiViewChannelID, 0);我用GetLastError返回的是1400,指无效的句柄
      

  4.   

    1.因为父类m_hTab中有多个资源ID为IDD_GRAPHDIALOG的窗口(你使用Create(IDD_GRAPHDIALOG,this)创建了多个资源ID为IDD_GRAPHDIALOG的对话框)。
    2.就像你想获取对话框中今天文本框(ID为IDC_STATIC)一样,都会失败的。
      

  5.   

    2.就像你想获取对话框中的文本框(ID为IDC_STATIC)一样,都会失败的。(假设你对话框有多个静态文本框ID均为IDC_STATIC)
      

  6.   

    我有点看不明白你写的啥...m_hGraphDlg不是CDialog[]吗?底下怎么变成HWND了?
    m_hTab这个HWND是做啥的?
    你能把逻辑完整的叙述出来吗.........
      

  7.   

    对象关联的资源ID是你create时传入的ID,就是他的ID
      

  8.   

    create中的id是资源模板的id!并不是说是dialog的id!你说的那个id是当为子窗口时需要的id