MFC在窗口类外部或者另一个窗口获取其他窗口控件中的内容


  测试子窗口获取其他窗口控件的内容,并显示到子窗口中(2种方法),主要是因为直接在子窗口上获取或出现断言的错误

  1,在其他窗口中 设置静态变量static  str,提前赋值好, 这样在子窗口类中就能访问这个数据


        SetDlgItemText(IDC_STATIC1, CHome_WorkDlg::str);    //记住要类外初始化  static

        其实不推荐这种方法 下面是不用设置静态变量的方法


  2,HWND hWnd = ::FindWindow(NULL, _T("Home_Work"));        //得到窗口的句柄(第2个参:其他窗口的名称)

     //由句柄得到对话框的对象指针(( CHome_WorkDlg)其他窗口类名)
    CHome_WorkDlg* pWnd = (CHome_WorkDlg*)CHome_WorkDlg::FromHandle(hWnd);

    这样之后(1)可以 

    CEdit* pBoxOne = (CEdit*)pWnd->GetDlgItem(IDC_EDIT2);    //((IDC_EDIT2)其他窗口控件名)
    pBoxOne->GetWindowText(str4);

    还可以(2)在其它窗口中定义获取变量的方法

    str4= pWnd->Get_Edit();   //其他窗口(CHome_WorkDlg)中的方法
    
    最后

    SetDlgItemText(IDC_STATIC1, str4);    //在子窗口控件上填上内容

END ...

你可能感兴趣的:(MFC在窗口类外部或者另一个窗口获取其他窗口控件中的内容)