如何在VC中实现把一个旧的视图保存到链表中,从而实现类似于一般网页通过后退恢复旧的视图的功能。请直接给出实现代码。
解决方案 »
- 进程间的参数传递
- VC6.0问题解惑
- 没有头绪啊,紧急求救,关于在pictureBox上放置背景图片,如何将背景图片透明,并能够添加静态文本且在不影响背景图片的情况下显示
- 编辑框不能同步显示输出结果。
- 一个切分窗口SplitterWnd,怎么能使各视图的相对位置保持不变(即不能通过鼠标拖动分隔栏改变各个子窗口的大小)
- 关于创建临时文件的问题!!!!!!!!
- 怎么广播ping包,怎么接受广播ping 的回复包?
- 大家好,我是VC的初学者能推荐几本VC的书吗?
- 求救,用Netusergetinfo()是否可以得到用户的密码 ?
- 如何在W2K修改中修改其它进程的内存???
- 初学MFC,问个窗口拆分的问题!谢谢!
- 拿到别人交给我的一个idl,需要实现里面的接口。如何用ATL实现?要求是进程外的exe的。
要么就在页面跳转时,把所有的Document,保存在本地文件中或自己开一个缓冲吧。
你在用CHtmlView是吧?里面就自带的有导航功能的一系列函数,如GoBack(),GoForward,Stop,Refresh等等,自已看MSDN吧
void CMainFrame::SwitchView(int nView)
{
BOOL bFlag = m_splitterWndRow2.GetPane(0, 0)->IsKindOf(RUNTIME_CLASS(CDataFormView));
if (nView == DATA_LIST && bFlag)
return;
/*if (nView == DATA_QUERY && (!bFlag))
return;查询页还是要重新构建来初始化界面*/
CCreateContext context;
context.m_pCurrentDoc = GetActiveView()->GetDocument();
context.m_pCurrentFrame = this;
m_splitterWndRow2.DeleteView(0, 0);
if(nView == DATA_QUERY)
{
m_splitterWndRow2.CreateView(0, 0, RUNTIME_CLASS(CQueryView), CSize(0, 310), &context);
}
else
{
m_splitterWndRow2.CreateView(0, 0, RUNTIME_CLASS(CDataFormView), CSize(0, 310), &context);
}
((CView*)m_splitterWndRow2.GetPane(0, 0))->OnInitialUpdate();
m_splitterWndRow2.RecalcLayout();
}
我现在要做的是在m_splitterWndRow2.DeleteView(0, 0);语句之前,先用CPtrList保存所要删除的View,在以后要用时通过遍历链表来调用它,应怎么实现呢
到一个vector或数组
CPtrList p_List;
CWnd *pos =(CWnd *)GetActiveView();
p_List.AddTail (pos);
代码实现对将删除的View进行保存了,但是应怎样才能把所保存的View重新显示到客户区呢?
p_List.AddTail (pos);
代码实现对将删除的View进行保存了,但是应怎样才能把所保存的View重新显示到客户区呢?//
pos->ShowWindow(SW_SHOW);
其余的pos->ShowWindow(SW_HIDE);