分割视之间如何互相调用对方的Class member 不太清楚你的意思。不过我认为至少可以:定义一个自定义消息,在CMyListView里处理这个消息,(WParam复用为不同的函数调用)在CMyTreeView里就发消息调用啦。还有,要是就是想调用函数的话,可以用friend类啊。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你可以在框架窗口或CWinApp中保存这两个类的指针,框架窗口指针和CWinApp指针都是很容易得到的,然后就不用说了吧。 可以试一试:在CMyTreeView里面:CDocument *pDoc = GetDocument();ASSERT(pDoc);POSITION pos = pDoc->GetFirstViewPosition();CView* pView = NULL;while (pos != NULL){ pView = GetNextView(pos); if (pView->IsRuntimeClass(CMyTreeView)) break; pView->UpdateWindow();} if (!pView) return;CMyTreeView *pTreeView = (CMyTreeView *)pTreeView;while( 可以试一试:在CMyTreeView里面:CDocument *pDoc = GetDocument();ASSERT(pDoc);POSITION pos = pDoc->GetFirstViewPosition();CView* pView = NULL;while (pos != NULL){ pView = GetNextView(pos); if (pView->IsRuntimeClass(CMyTreeView)) break;} if (!pView) return;CMyTreeView *pTreeView = (CMyTreeView *)pTreeView; 可以试一试:在CMyTreeView里面:CDocument *pDoc = GetDocument();ASSERT(pDoc);POSITION pos = pDoc->GetFirstViewPosition();CView* pView = NULL;bool bFound = false;while (pos != NULL){ pView = GetNextView(pos); if (pView->IsRuntimeClass(CMyTreeView)) { bFound = true; break; }} if (!bFound) return;CMyTreeView *pTreeView = (CMyTreeView *)pTreeView; 不好意思,csdn一直提示我出现错误,结果发出了这么多贴子。 如同上面所述,遍历视,用isruntimeclass来判断是否是CMyTreeView类的指针。 在CMyTreeView里:CMyListView* pView = (CMyListView*)((CSplitterWnd*)GetParent())->GetPane(0,1);ASSERT_KINDOF(CMyListView, pView);pView->func(); 我也有一种办法,只不过比较容易理解 在CMyTreeView中假设你mSplitterWnd是你用来分割窗体的CSplitterWnd类 CMainFrame * frm; frm = (CMainFrame *)::AfxGetMainWnd(); CMyListView *pView = (CMyListView *)frm.mSplitterWnd.GetPane(0,1); VisualEleven和各位高手,遇到一个socket问题,请你们进来给解解呗! 截图 问题 位图到图标的应用 文档/视结构,对话框打印退出就全部退出了,来都有分(200)。 [求助]Hook键盘问题?? 有关无法写入注册表的问题。。不知道该发到哪个区 如何列出一张动态表的列名? 给出解决方法者给50分 简单问题,送分了 请教一个关于运行响应消息的问题 新人求教 毕业设计需要编个停车场按时计费管理系统 应该学些什么 在程序退出的时候,是先释放全局变量还是先调了主框架窗口的DestroyWindow? 如何更改系统缺省路径?
在CMyTreeView里面:
CDocument *pDoc = GetDocument();
ASSERT(pDoc);
POSITION pos = pDoc->GetFirstViewPosition();
CView* pView = NULL;
while (pos != NULL)
{
pView = GetNextView(pos);
if (pView->IsRuntimeClass(CMyTreeView))
break;
pView->UpdateWindow();
}
if (!pView)
return;
CMyTreeView *pTreeView = (CMyTreeView *)pTreeView;
while(
在CMyTreeView里面:
CDocument *pDoc = GetDocument();
ASSERT(pDoc);
POSITION pos = pDoc->GetFirstViewPosition();
CView* pView = NULL;
while (pos != NULL)
{
pView = GetNextView(pos);
if (pView->IsRuntimeClass(CMyTreeView))
break;
}
if (!pView)
return;
CMyTreeView *pTreeView = (CMyTreeView *)pTreeView;
在CMyTreeView里面:
CDocument *pDoc = GetDocument();
ASSERT(pDoc);
POSITION pos = pDoc->GetFirstViewPosition();
CView* pView = NULL;
bool bFound = false;
while (pos != NULL)
{
pView = GetNextView(pos);
if (pView->IsRuntimeClass(CMyTreeView))
{
bFound = true;
break;
}
}
if (!bFound)
return;
CMyTreeView *pTreeView = (CMyTreeView *)pTreeView;
CMyListView* pView = (CMyListView*)((CSplitterWnd*)GetParent())->GetPane(0,1);
ASSERT_KINDOF(CMyListView, pView);
pView->func();
在CMyTreeView中
假设你mSplitterWnd是你用来分割窗体的CSplitterWnd类
CMainFrame * frm;
frm = (CMainFrame *)::AfxGetMainWnd();
CMyListView *pView = (CMyListView *)frm.mSplitterWnd.GetPane(0,1);