关于窗口分割后,不同窗格之间的通信。

xjzhangg 2003-08-20 10:00:52
将窗口分为左右两个窗格,左面窗格对应的类是CTypeView,右面窗格对应的类是CDisplayView.想在双击左面窗格时,调用右面窗格类(CDisplayView)的成员函数,下面是在双击事件中的两行代码,以获得CDisplayView的指针,但是程序每当执行到
CDisplayView* pDisplayView=(CDisplayView*)MainFrame1->m_wndSplitter.GetPane(0,1);就出错,请高手指点为什么。

void CTypeView::OnLButtonDblClk(UINT nFlags, CPoint point)
{
CMainFrame* MainFrame1=(CMainFrame*)this->GetParent()->GetParent();
CDisplayView* pDisplayView=(CDisplayView*)MainFrame1->m_wndSplitter.GetPane(0,1);
...全文
41 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
xjzhangg 2003-08-21
  • 打赏
  • 举报
回复
多谢 yuxi81(无名) ,你说的很对,因为按照你说的,程序通过了。
yuxi81 2003-08-20
  • 打赏
  • 举报
回复
分割了后的view的getparent()并不一定返回的就是m_wndSplitter,应该是m_wndSplitter下的一个child框架,这样你两次调用getparent()返回的就只是m_wndSplitter了,而不是cmainframe。
纯属猜测,也许可以试试加三个getparent()的结果
哈哈
xjzhangg 2003-08-20
  • 打赏
  • 举报
回复
soso82(海阔天空) ,用你的方法后,程序通过了,多谢了。我想继续请教一下,为什么这样可以,那样就不可以呢。
xjzhangg 2003-08-20
  • 打赏
  • 举报
回复
是的,静态分割。
soso82 2003-08-20
  • 打赏
  • 举报
回复
你那个MainFrame1用这个获取试试。CMainFrame* pFrame =(CMainFrame*)AfxGetApp()->m_pMainWnd;还有,你的窗口分割是否静态分割?

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧