您的位置:首页 > 其它

全局函数访问类成员方法

2011-12-27 14:57 176 查看
 
全局函数(或者回调函数)访问类成员函数

全局或回调函数访问类成员,这个问题有些老生长弹,但有很多方法都可以用,这里进行小小的总结一下。

第一种方法:使用API函数:

 SendMessage(AfxGetMainWnd()->m_hWnd,DRAWPIC_OWNER,NULL,NULL);

 SendMessage(AfxGetApp()->GetMainWnd()->m_hWnd,DRAWPIC_OWNER,NULL,NULL);

 SendMessage(AfxGetApp()->m_pMainWnd->GetSafeHwnd(),DRAWPIC_OWNER,NULL,NULL);

 CWnd::FromHandle(HWND hwnd) //HWND与CWND互转

        AfxGetMainWnd()->GetDlgItem(IDC_EDIT1)->SetWindowText(_T("aaa"));

第二种方法:使用程序本身的全局变量

        在app的类中,VC会自动定义一个theApp全局变量,而且主界面里会自动包含他,自己定义的窗体可以包含头文件后自动使用

 PostMessage(theApp.m_pMainWnd->GetSafeHwnd(),DRAWPIC_OWNER,NULL,NULL);

第三种方法:使用程序自定义的全局变量或指针 (与C++BUILDER中相似,访问对象的指针)

XXXClass *p或者XXXClass b;在生成窗体或实例对象时,让p=&对象,或者b = 对象;然后用extern在使用处使用。

第四种方法,象线程的函数一样,在创建时把当前窗体或需要的窗体类的指针当作参数传进去。

还有一种很笨的方法,用定时器定时查看全局函数中的全局数据,到达目的后就可以直接操作了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  null api