MFC---数据在各种情形下的调用(跨窗口/类)

一、利用窗口指针调用数据

1.主窗口指针的获取:

    1.在主线程中获取:CWnd*  AfxGetMainWnd();此处返回值是CWnd* 类型的,具体使用时还需要根据需要对类型进行转换。

    2.在子线程中获取:CWnd*  AfxGetApp()->GetMainWnd();或CWnd*  AfxGetApp()->m_pMainWnd;

先获取进程指针,再获取主窗口指针。返回值类型依旧同上,根据需要自行转换。

2.子窗口指针的获取:

    1.在主线程中获取:

//得到子窗口的窗口句柄
HWND hDlg=::FindWindow(NULL,_T("子窗口的caption"));
//得到子窗口的指针	
CSonDlg* pDlg = (CSonDlg*)CSonDlg::FromHandle(hDlg);

    2.在子线程中获取:

(用上述方法找不到子窗口指针),在调用线程参数处,将需要用到的所有子窗口指针打包作为线程函数的参数传递给子线程即可。

二、利用静态数据成员传递数据

     将类下的数据成员定义为静态数据成员(通过控件添加的变量同样可以这么操作),那么在类外需要调用该数据成员处只需按照     类名::数据成员名     的格式调用即可。

三、全局变量

      好像没什么说的。。。



第一篇博客,Mark下~

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值