以前我做了一个以CView为基类的单文档多视图,现在改为CScrollView,但令人郁闷的是在视图切换的时候会出错,一直没找到原因,请高手指点。
解决方案 »
- Socket数据接收错误 请帮忙
- 请问如何在VC8中建立静态链接库
- 如何枚举网内的MS SQL Server及其实例,数据库,文件组?
- ===》巨急:基于 dlg 的 ActiveX 在上动态创建的按扭点击时会有个 MessageBox,但是我只能第一次弹出,以后再也不能成功,为什么?
- 在editbox中输入后,按enter键调出对话框,怎么触发阿
- 内存分配问题
- CTreeCtrl的哪个事件函数是类似于PB的ITEMPOPULATE的
- 关于Socket的一个非常简单的问题(EventSelect模型的)
- 动态生成的菜单怎样处理它的消息???
- C++里类和结构有什么区别呀?
- 可伸缩的窗口
- mfc使用ADO编写ACCESS数据库程序,在有些电脑上无法CreateInstance
void CXXXXView::OnInitialUpdate()
{
CScrollView::OnInitialUpdate(); CSize sizeTotal;
// TODO: calculate the total size of this view
sizeTotal.cx =100;
sizeTotal.cy = 100;
SetScrollSizes(MM_TEXT, sizeTotal);
}
BOOL CModelApp::InitInstance()
{
................. /////////////////////////////////////////////////////////////////////
//创建一个新的视图
CView* m_pActiveView=((CFrameWnd*)m_pMainWnd)->GetActiveView();
m_pMainView=m_pActiveView;
m_pBBTTView=new BBTT();
m_pZFHJView=new ZFHJ();
//文档和视图关联
CDocument* m_pDoc=((CFrameWnd*)m_pMainWnd)->GetActiveDocument();
CCreateContext context;
context.m_pCurrentDoc=m_pDoc;
//创建视图
UINT m_IDFORANOTHERVIEW1=AFX_IDW_PANE_FIRST + 1;
CRect rect1;
m_pBBTTView->Create(NULL,NULL,WS_CHILD | WS_BORDER,rect1,m_pMainWnd,
m_IDFORANOTHERVIEW1,&context); UINT m_IDFORANOTHERVIEW2=AFX_IDW_PANE_FIRST + 2;
CRect rect2;
m_pZFHJView->Create(NULL,NULL,WS_CHILD | WS_BORDER,rect2,m_pMainWnd,
m_IDFORANOTHERVIEW2,&context); CurrentViewID=::GetWindowLong(m_pMainView->m_hWnd, GWL_ID);
return TRUE;
}void CModelApp::OnZfhj()
{
// TODO: Add your command handler code here
::SetWindowLong(m_pZFHJView->m_hWnd,GWL_ID,CurrentViewID);
CurrentViewID=::GetWindowLong(m_pZFHJView->m_hWnd,GWL_ID); m_pMainView->ShowWindow(SW_HIDE);
m_pBBTTView->ShowWindow(SW_HIDE);
m_pZFHJView->ShowWindow(SW_SHOW); ((CFrameWnd*)m_pMainWnd)->SetActiveView(m_pZFHJView);
((CFrameWnd*)m_pMainWnd)->RecalcLayout();
m_pZFHJView->Invalidate();
}..................void ZFHJ::OnInitialUpdate()
{
CScrollView::OnInitialUpdate(); CSize sizeTotal;
// TODO: calculate the total size of this view
sizeTotal.cx = sizeTotal.cy = 100;
SetScrollSizes(MM_TEXT, sizeTotal);
}
// TODO: 计算此视图的合计大小
sizeTotal.cx = sizeTotal.cy = 100 ;
SetScrollSizes(MM_TEXT, sizeTotal);
问题圆满解决。我的程序已经没事了。
{
// TODO: 在此处添加构造代码
m_Tool = 0;
m_OldPoint = CPoint(0,0); CSize sizeTotal;
// TODO: 计算此视图的合计大小
sizeTotal.cx = sizeTotal.cy = 30000 ;
SetScrollSizes(MM_TEXT, sizeTotal);
}说明:CDataStructureView继承于CScrollView