通过全局句柄(extern HWND)访问其他类
2009-03-05 22:07
204 查看
一般我们是通过定义一个类的对象来访问类的成员变量及函数的。这比较简单,比如:
CPage1 m_page1;
然后就可以通过m_page1访问CPage1类中的定义的函数 比如:m_page1.Add(2,3);
但是如果需要再CPage1类中访问主窗口类中的函数该怎么办?
我们可以通过句柄来访问。
1.首先在Test.h(主程序头文件) 或StdAfx.h中定义也行
extern HWND g_hWnd;
2.在TestDlg.cpp中确保Test.h头文件被引用,并定义
HWND g_hWnd;
3.在CTestDlg::OnInitDialog()中
g_hWnd=m_hWnd;
好了 在任何地方如CPage1中引用如:
((CTestDlg*)FromHandle(g_hWnd))->m_page1.ShowWindow(SW_HIDE);
当然因为g_hWnd也是程序主窗口的句柄 所以g_hWnd也可以写成AfxGetMainWnd()->m_hWnd
这种方法在相同类中中比较常见。比如定义了CPage1、CPage2、CPage3等等类。他们相互之间引用通过句柄是一种比较方便的办法。
CPage1 m_page1;
然后就可以通过m_page1访问CPage1类中的定义的函数 比如:m_page1.Add(2,3);
但是如果需要再CPage1类中访问主窗口类中的函数该怎么办?
我们可以通过句柄来访问。
1.首先在Test.h(主程序头文件) 或StdAfx.h中定义也行
extern HWND g_hWnd;
2.在TestDlg.cpp中确保Test.h头文件被引用,并定义
HWND g_hWnd;
3.在CTestDlg::OnInitDialog()中
g_hWnd=m_hWnd;
好了 在任何地方如CPage1中引用如:
((CTestDlg*)FromHandle(g_hWnd))->m_page1.ShowWindow(SW_HIDE);
当然因为g_hWnd也是程序主窗口的句柄 所以g_hWnd也可以写成AfxGetMainWnd()->m_hWnd
这种方法在相同类中中比较常见。比如定义了CPage1、CPage2、CPage3等等类。他们相互之间引用通过句柄是一种比较方便的办法。
相关文章推荐
- 通过全局句柄(extern HWND)访问其他类
- const定义的全局变量不能被其他文件访问,必须加extern 才能被访问吗?
- const定义的全局变量不能被其他文件访问,必须加extern 才能被访问吗?
- 使用JSCH框架通过跳转机访问其他节点的方法
- Win10系统下怎么让局域网内其他电脑通过IP访问网站
- 通过api获取句柄控制其他窗体(转)
- 动态链接时如何访问在其他模块中的全局变量
- 局域网内通过机器名访问其他机器
- 通过api获取句柄控制其他窗体
- 解决无法通过ip从其他电脑访问xampp集成开发服务器( 从其他电脑访问本机apache服务器)
- 如何通过Cygwin的ssh远程访问其他服务器
- 零基础学python-16.5 模块间全局变量的修改以及其他访问全局变量的方法
- android学习—— 通过包名访问其他apk下的资源
- ios开发使用extern访问全局变量
- 通过nat来通过其他可访问端口访问3306数据库
- 零基础学python-16.5 模块间全局变量的修改以及其他访问全局变量的方法
- FIS本地发布-其他同事通过IP访问
- 通过api获取句柄控制其他窗体
- 其他类通过接口访问内部类成员(JAVA的保护)
- 通过api获取句柄控制其他窗体