静态分裂视图获取视图指针的方法

无悔梦归处 2011-03-14 05:19:19
我的工程用到了静态分裂视图的方法,视图间的通信主要是通过在CMainFrame获取视图消息然后处理;采用
CMainFrame *pFrm=(CMainFrame *)AfxGetApp()->GetMainWnd();
CFormImageSamResult *pView1=(CFormImageSamResult *)pFrm->m_wndSplitterClientUp.GetPane(0,0);
我可以在任意视图中获取分裂视图的指针,但是当我在视图的OnSize消息中采用这种方法获取视图指针时就会报错了,主要是非法指针访问断言错误的问题:
int CSplitterWnd::IdFromRowCol(int row, int col) const
{
ASSERT_VALID(this);////////此处出错!
ASSERT(row >= 0);
ASSERT(row < m_nRows);
ASSERT(col >= 0);
ASSERT(col < m_nCols);

return AFX_IDW_PANE_FIRST + row * 16 + col;
}
难道此时我的分割器对象不存在了?为什么在视图的其他函数中使用都是可以的,OnSize 运行的时间较早,和这个有关系没有?我在视图的OnInitUpdate中使用都没有此问题!
...全文
67 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

3,881

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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