在框架类中添加菜单按钮,启动一个对话框,如何得到这个对话框中的控件句柄?

解决方案 »

  1.   

    这个nID是对话框的nID还是,控件的?如果是对话框的,那么m_hWnd是哪个控件的指针?
      

  2.   

    我在框架类中定义了这个对话框的对象:CDialog dialog;也是在框架类这个类中的一个按钮响应函数中想要得到这个对话框上的控件的指针。那么,我可否直接使用dialog这个对象,而不用GetDlgItem(nID)呢?
      

  3.   

    believefym(暮色,miss,迷失,miss) ( ) 信誉:100    Blog  2006-11-10 10:36:00  得分: 0  
     
     
       GetDlgItem(nID)->m_hWnd
     
     
    我把代码贴出来://这里和下面两个函数产生出一个共同的对话框。当按下第二个的时候,要改变对话框的一些属性。比如:标题 和这个对话框中Label控件的内容。但是现在DialogAddPort.GetSafeHwnd()却返回false;也就改变不了属性了。
    void CMainFrame::OnAddP() 
    {
    // TODO: Add your command handler code here
    DialogAddPort.DoModal();
    }void CMainFrame::OnAddPro() 
    {
    // TODO: Add your command handler code here
    CFormView* pFormView = (CFormView*)AfxGetMainWnd()->GetActiveWindow();
    //pFormView->;
    CWnd *pLabel = GetDlgItem(IDC_STATIC);
    if(DialogAddPort.GetSafeHwnd())
    {
    DialogAddPort.SetDlgItemText(IDD_DIALOG_PORT,"增加协议");
    pLabel->SetDlgItemText(IDC_STATIC,"欲增加的协议");
    }
    DialogAddPort.DoModal();
    }
      

  4.   

    这个nID是对话框的nID还是,控件的?如果是对话框的,那么m_hWnd是哪个控件的指针?
    --------
    是控件ID,所以直接得到控件句柄ps:函数参数这种问题,为什么不查msdn呢?