如果你无法在其他类中直接获取 `CMFCApplication1View` 中的 `CEditView` 指针,可以尝试以下方法:
1. **通过单例模式共享指针**:
- 可以在 `CMFCApplication1View` 类中定义一个静态成员,用于存储指向 `CEditView` 的指针,然后通过静态方法访问这个指针。
// CMFCApplication1View.h
class CMFCApplication1View : public CEditView
{
public:
static CMFCApplication1View* GetInstance();
static void SetInstance(CMFCApplication1View* instance);
private:
static CMFCApplication1View* m_instance;
};
// CMFCApplication1View.cpp
CMFCApplication1View* CMFCApplication1View::m_instance = nullptr;
CMFCApplication1View* CMFCApplication1View::GetInstance()
{
return m_instance;
}
void CMFCApplication1View::SetInstance(CMFCApplication1View* instance)
{
m_instance = instance;
}
// 在视图类初始化时设置实例
BOOL CMFCApplication1View::OnInitialUpdate()
{
CEditView::OnInitialUpdate();
SetInstance(this);
// 其他初始化代码
}
- 在其他类中可以通过 `CMFCApplication1View::GetInstance()` 获取到视图指针。
2. **使用文档类获取视图指针**:
- 在文档/视图结构中,可以通过文档类遍历视图来获取需要的指针。
// 假设在文档类中
CMFCApplication1View* GetEditView()
{
POSITION pos = GetFirstViewPosition();
while (pos != NULL)
{
CView* pView = GetNextView(pos);
if (pView->IsKindOf(RUNTIME_CLASS(CMFCApplication1View)))
{
return dynamic_cast<CMFCApplication1View*>(pView);
}
}
return nullptr;
}
3. **通知和事件**:
- 可以在视图内提供一些公共接口方法,以便其他类调用这些方法来操作视图。
无论采用哪种方法,关键在于确保指针在初始化过程中被正确存储,并提供一个访问入口以便其他类能够获取此信息。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |