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

本文介绍两种在子窗口中获取并显示其他窗口控件内容的方法。第一种使用静态变量传递数据;第二种通过窗口句柄获取对话框对象,进而访问控件内容或调用其他窗口的成员函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


  测试子窗口获取其他窗口控件的内容,并显示到子窗口中(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 ...

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值