MFC文档类程序怎么直接拿到某个类的指针
时间: 2024-05-07 07:22:12 浏览: 66
如果在MFC文档类程序中需要获取某个类的指针,可以采用以下方式:
1. 如果目标类是文档类的成员变量,可以通过文档类对象访问该成员变量的指针,例如:
```cpp
CMyDoc* pDoc = GetDocument();
CMyClass* pClass = pDoc->m_pMyClass;
```
2. 如果目标类是视图类的成员变量,可以通过视图类对象访问该成员变量的指针,例如:
```cpp
CMyView* pView = GetActiveView();
CMyClass* pClass = pView->m_pMyClass;
```
3. 如果目标类是应用程序类的成员变量,可以通过应用程序类对象访问该成员变量的指针,例如:
```cpp
CMyApp* pApp = AfxGetApp();
CMyClass* pClass = pApp->m_pMyClass;
```
4. 如果目标类不是文档类、视图类或应用程序类的成员变量,可以使用全局函数 AfxGetApp 或 AfxGetMainWnd 获取应用程序类对象或主窗口对象,再通过该对象访问目标类的指针,例如:
```cpp
CMyApp* pApp = AfxGetApp();
CMyClass* pClass = pApp->m_pMyClass;
```
```cpp
CMainFrame* pMainFrame = (CMainFrame*)AfxGetMainWnd();
CMyClass* pClass = pMainFrame->m_pMyClass;
```
需要注意的是,以上方法都要求目标类的指针是公共成员变量,否则无法直接访问。如果目标类的指针是私有成员变量,可以使用类的成员函数来获取该指针。
阅读全文