7,540
社区成员
发帖
与我相关
我的任务
分享
void CNewView::OnInitialUpdate()
{
CFormView::OnInitialUpdate();
m_mytree.SetBkColor(RGB(0,0,255));
// TODO: 在此添加专用代码和/或调用基类
}
void CMainFrame::OnRechangeview()
{
CMyFormView* pFmView=(CMyFormView*) GetActiveView(); //此时AvtiveView已经编程FormView了。
SetActiveView(pVView);
pVView->ShowWindow(SW_SHOW); //变量是CVView窗口的指针,而且在程序当中没有被销毁重新生成过。 所以任何位置pVView都是那个Ciew类
//视图指针。
pFmView->ShowWindow(SW_HIDE);
RecalcLayout();
}
//响应这些命令,视图相互转化,
//一共有四个界面,连主界面是五个.现在由主界面转其它四个以及其它四个之间的相互转换都很顺利,但是没有办法转回主界面.
//第一个是BasicOp视图.
void CMainFrame::OnBasicOp()
{
// TODO: 在此添加命令处理程序代码
CView* pOldActiveView=(CView*) GetActiveView();
CBasicOpView* pNewActiveView=(CBasicOpView*) new CBasicOpView();
CCreateContext context;
context.m_pCurrentDoc=pOldActiveView->GetDocument();
pNewActiveView->Create(NULL,NULL,0L,CFrameWnd::rectDefault,this,IDD_BASIC_OP_VIEW,&context);
pNewActiveView->OnInitialUpdate(); /**/
SetActiveView(pNewActiveView);
pNewActiveView->ShowWindow(SW_SHOW);
pOldActiveView->ShowWindow(SW_HIDE);
pNewActiveView->SetDlgCtrlID(AFX_IDW_PANE_FIRST);
RecalcLayout();
}
//这是第另一个ControlOp视图
void CMainFrame::OnControlOp()
{
CView* pOldActiveView=(CView*) GetActiveView();
CControlOpView* pNewActiveView=(CControlOpView*) new CControlOpView();
CCreateContext context;
context.m_pCurrentDoc=pOldActiveView->GetDocument();
pNewActiveView->Create(NULL,NULL,0L,CFrameWnd::rectDefault,this,IDD_CONTROL_OP_VIEW,&context);
pNewActiveView->OnInitialUpdate(); /**/
SetActiveView(pNewActiveView);
pNewActiveView->ShowWindow(SW_SHOW);
pOldActiveView->ShowWindow(SW_HIDE);
pNewActiveView->SetDlgCtrlID(AFX_IDW_PANE_FIRST);
RecalcLayout();
// TODO: 在此添加命令处理程序代码
}
//这是RealviewOp视图
void CMainFrame::OnRealviewOp()
{
CView* pOldActiveView=(CView*) GetActiveView();
CRealViewOpView* pNewActiveView=(CRealViewOpView*) new CRealViewOpView();
CCreateContext context;
context.m_pCurrentDoc=pOldActiveView->GetDocument();
pNewActiveView->Create(NULL,NULL,0L,CFrameWnd::rectDefault,this,IDD_REALVIEW_OP_VIEW,&context);
pNewActiveView->OnInitialUpdate(); /**/
SetActiveView(pNewActiveView);
pNewActiveView->ShowWindow(SW_SHOW);
pOldActiveView->ShowWindow(SW_HIDE);
pNewActiveView->SetDlgCtrlID(AFX_IDW_PANE_FIRST);
RecalcLayout();
// TODO: 在此添加命令处理程序代码
}
//这是SetOp视图
void CMainFrame::OnSetOp()
{
CView* pOldActiveView=(CView*) GetActiveView();
CSetOpView* pNewActiveView=(CSetOpView*) new CSetOpView();
CCreateContext context;
context.m_pCurrentDoc=pOldActiveView->GetDocument();
pNewActiveView->Create(NULL,NULL,0L,CFrameWnd::rectDefault,this,IDD_SET_OP_VIEW,&context);
pNewActiveView->OnInitialUpdate(); /**/
SetActiveView(pNewActiveView);
pNewActiveView->ShowWindow(SW_SHOW);
pOldActiveView->ShowWindow(SW_HIDE);
pNewActiveView->SetDlgCtrlID(AFX_IDW_PANE_FIRST);
RecalcLayout();
// TODO: 在此添加命令处理程序代码
}
void CNewView::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
m_mytree.SetBkColor(RGB(0,0,255));
}
class CMainFrame : public CFrameWnd
{
protected: // control bar embedded members
CStatusBar m_wndStatusBar;
CToolBar m_wndToolBar;
CVView* pVView; //声明一个变量
void CMainFrame::OnChangeview()
{
CVView* pOldActiveView=(CVView*) GetActiveView();
pVView = pOldActiveView; //变量赋值
CMyFormView* pNewActiveView=(CMyFormView*) new CMyFormView();
CCreateContext context;
context.m_pCurrentDoc=pOldActiveView->GetDocument();
pNewActiveView->Create(NULL,NULL,0L,CFrameWnd::rectDefault,this,IDD_FORMVIEW,&context);
pNewActiveView->OnInitialUpdate();
SetActiveView(pNewActiveView);
pNewActiveView->ShowWindow(SW_SHOW);
pOldActiveView->ShowWindow(SW_HIDE);
pNewActiveView->SetDlgCtrlID(AFX_IDW_PANE_FIRST);
RecalcLayout();
}
void CMainFrame::OnRechangeview()
{
CMyFormView* pFmView=(CMyFormView*) GetActiveView(); //此时AvtiveView已经编程FormView了。
SetActiveView(pVView);
pVView->ShowWindow(SW_SHOW); //变量是CVView窗口的指针,而且在程序当中没有被销毁重新生成过。 所以任何位置pVView都是那个Ciew类
//视图指针。
pFmView->ShowWindow(SW_HIDE);
RecalcLayout();
}
class CMyFormView : public CFormView
{
protected:
DECLARE_DYNCREATE(CMyFormView)
// Form Data
public:
//{{AFX_DATA(CMyF)
enum { IDD = IDD_FORMVIEW };
CTreeCtrl m_My; //添加了控件
//}}AFX_DATA
// Attributes
public:
CMyFormView(); //改为公有函数
BOOL CMyFormView::Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext)
{
// TODO: Add your specialized code here and/or call the base class
return CFormView::Create(lpszClassName, lpszWindowName, dwStyle, rect, pParentWnd, nID, pContext);
}
void CMainFrame::OnChangeview()
{
CVView* pOldActiveView=(CVView*) GetActiveView();
CMyFormView* pNewActiveView=(CMyFormView*) new CMyFormView();
CCreateContext context;
context.m_pCurrentDoc=pOldActiveView->GetDocument();
pNewActiveView->Create(NULL,NULL,0L,CFrameWnd::rectDefault,this,IDD_FORMVIEW,&context);
pNewActiveView->OnInitialUpdate();
SetActiveView(pNewActiveView);
pNewActiveView->ShowWindow(SW_SHOW);
pOldActiveView->ShowWindow(SW_HIDE);
pNewActiveView->SetDlgCtrlID(AFX_IDW_PANE_FIRST);
RecalcLayout();
}
void CMyFormView::OnInitialUpdate()
{
CFormView::OnInitialUpdate();
m_My.SetBkColor(RGB(255,0,0));
}