![]() |
|
|
![]()
|
|
| RSV |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 61 Регистрация: 27.6.2005 Репутация: нет Всего: нет |
Не могу понять почему при переключении с CFormView на CScrollView
винда выдает сообщение об ошибке. Когда заменяю CScrollView на CView, то всё впорядке. Где у меня ошибка. Код с коментариями прилагаю. Заранее спасибо. |
|||
|
||||
| nikitao |
|
|||
![]() Кот-программист ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1206 Регистрация: 30.8.2005 Где: Спб Репутация: нет Всего: 26 |
RSV, так где код?(вешай проблемный кусок прямо сюда).
-------------------- Жизнь - печальная штука. |
|||
|
||||
| takedo |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 501 Регистрация: 1.6.2005 Репутация: нет Всего: 3 |
RSV, показывай как делаешь, по другому не разобраться.
Добавлено @ 11:29 по ссылке ничего не получаю -------------------- я не гольфист - я хоккеист |
|||
|
||||
| Coocky |
|
|||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: 25 Всего: 62 |
Давай сюда, сейчас как два пальца...
Только скопируй код в теги Код -------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья |
|||
|
||||
| RSV |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 61 Регистрация: 27.6.2005 Репутация: нет Всего: нет |
// MainFrm.h : interface of the CMainFrame class // #pragma once class CMainFrame : public CFrameWnd { protected: // create from serialization only CMainFrame(); DECLARE_DYNCREATE(CMainFrame) // Attributes public: // Operations public: // Overrides public: virtual BOOL PreCreateWindow(CREATESTRUCT& cs); // Implementation public: virtual ~CMainFrame(); #ifdef _DEBUG virtual void AssertValid() const; virtual void Dump(CDumpContext& dc) const; #endif protected: // control bar embedded members CStatusBar m_wndStatusBar; CToolBar m_wndToolBar; // Generated message map functions protected: afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); DECLARE_MESSAGE_MAP() public: CView* m_pViews[2]; int m_nCurView; afx_msg void OnSwitchView(UINT nID); afx_msg void OnUpdateViewEnterDate(CCmdUI *pCmdUI); afx_msg void OnUpdateViewPreviewData(CCmdUI *pCmdUI); }; /********************************************************************************************/ // MainFrm.cpp : implementation of the CMainFrame class // #include "stdafx.h" #include "Nakladnaya.h" #include "MainFrm.h" #include "NakladnayaDoc.h" #include "NakladnayaView.h" #include "PreView.h" #include ".\mainfrm.h" #ifdef _DEBUG #define new DEBUG_NEW #endif // CMainFrame IMPLEMENT_DYNCREATE(CMainFrame, CFrameWnd) BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd) ON_WM_CREATE() ON_COMMAND_RANGE(ID_VIEW_ENTER_DATE, ID_VIEW_PREVIEW_DATA, OnSwitchView) ON_UPDATE_COMMAND_UI(ID_VIEW_ENTER_DATE, OnUpdateViewEnterDate) ON_UPDATE_COMMAND_UI(ID_VIEW_PREVIEW_DATA, OnUpdateViewPreviewData) END_MESSAGE_MAP() static UINT indicators[] = { ID_SEPARATOR, // status line indicator ID_INDICATOR_CAPS, ID_INDICATOR_NUM, ID_INDICATOR_SCRL, }; // CMainFrame construction/destruction CMainFrame::CMainFrame() { // TODO: add member initialization code here } CMainFrame::~CMainFrame() { } int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CFrameWnd::OnCreate(lpCreateStruct) == -1) return -1; if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) || !m_wndToolBar.LoadToolBar(IDR_MAINFRAME)) { TRACE0("Failed to create toolbar\n"); return -1; // fail to create } if (!m_wndStatusBar.Create(this) || !m_wndStatusBar.SetIndicators(indicators, sizeof(indicators)/sizeof(UINT))) { TRACE0("Failed to create status bar\n"); return -1; // fail to create } // TODO: Delete these three lines if you don't want the toolbar to be dockable m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY); EnableDocking(CBRS_ALIGN_ANY); DockControlBar(&m_wndToolBar); return 0; } BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs) { if( !CFrameWnd::PreCreateWindow(cs) ) return FALSE; // TODO: Modify the Window class or styles here by modifying // the CREATESTRUCT cs return TRUE; } // CMainFrame diagnostics #ifdef _DEBUG void CMainFrame::AssertValid() const { CFrameWnd::AssertValid(); } void CMainFrame::Dump(CDumpContext& dc) const { CFrameWnd::Dump(dc); } #endif //_DEBUG // CMainFrame message handlers void CMainFrame::OnSwitchView(UINT nID) { // Индекс активизируемого представления int nNewView = nID - ID_VIEW_ENTER_DATE; if (m_nCurView == nNewView) return; // Текущее активное представление CView *pActiveView = m_pViews[m_nCurView]; // Активизируемое представление CView *pNewView = m_pViews[nNewView]; // Меняем идентификаторы предствлений int nSwitchChildID = pNewView->GetDlgCtrlID(); pNewView->SetDlgCtrlID(AFX_IDW_PANE_FIRST); pActiveView->SetDlgCtrlID(nSwitchChildID); // Прячем текущее представление pActiveView->ShowWindow(SW_HIDE); // Показываем активизируемое представление pNewView->ShowWindow(SW_SHOW); // Вносим изменения в фрейм и обновляем его SetActiveView(pNewView); RecalcLayout(); // Перерисовываем активизируемое представление // после обновления фрейма pNewView->Invalidate(); // Обновляем номер текущего представления m_nCurView = nNewView; } void CMainFrame::OnUpdateViewEnterDate(CCmdUI *pCmdUI) { pCmdUI->SetCheck(m_nCurView == 0); } void CMainFrame::OnUpdateViewPreviewData(CCmdUI *pCmdUI) { pCmdUI->SetCheck(m_nCurView == 1); } /**************************************************************************************/ // Nakladnaya.h : main header file for the Nakladnaya application // #pragma once #ifndef __AFXWIN_H__ #error include 'stdafx.h' before including this file for PCH #endif #include "resource.h" // main symbols // CNakladnayaApp: // See Nakladnaya.cpp for the implementation of this class // class CNakladnayaApp : public CWinApp { public: CNakladnayaApp(); // Overrides public: virtual BOOL InitInstance(); // Implementation afx_msg void OnAppAbout(); DECLARE_MESSAGE_MAP() }; extern CNakladnayaApp theApp; /*******************************************************************************************/ // Nakladnaya.cpp : Defines the class behaviors for the application. // #include "stdafx.h" #include "Nakladnaya.h" #include "MainFrm.h" #include "NakladnayaDoc.h" #include "NakladnayaView.h" #include "PreView.h" #ifdef _DEBUG #define new DEBUG_NEW #endif // CNakladnayaApp BEGIN_MESSAGE_MAP(CNakladnayaApp, CWinApp) ON_COMMAND(ID_APP_ABOUT, OnAppAbout) // Standard file based document commands ON_COMMAND(ID_FILE_NEW, CWinApp::OnFileNew) ON_COMMAND(ID_FILE_OPEN, CWinApp::OnFileOpen) END_MESSAGE_MAP() // CNakladnayaApp construction CNakladnayaApp::CNakladnayaApp() { // TODO: add construction code here, // Place all significant initialization in InitInstance } // The one and only CNakladnayaApp object CNakladnayaApp theApp; // CNakladnayaApp initialization BOOL CNakladnayaApp::InitInstance() { InitCommonControls(); CWinApp::InitInstance(); // Initialize OLE libraries // if (!AfxOleInit()) // { // AfxMessageBox(IDP_OLE_INIT_FAILED); // return FALSE; // } // AfxEnableControlContainer(); SetRegistryKey(_T("Local AppWizard-Generated Applications")); LoadStdProfileSettings(4); // Load standard INI file options (including MRU) CSingleDocTemplate* pDocTemplate; pDocTemplate = new CSingleDocTemplate( IDR_MAINFRAME, RUNTIME_CLASS(CNakladnayaDoc), RUNTIME_CLASS(CMainFrame), // main SDI frame window RUNTIME_CLASS(CEnterDataView)); if (!pDocTemplate) return FALSE; AddDocTemplate(pDocTemplate); // Parse command line for standard shell commands, DDE, file open CCommandLineInfo cmdInfo; ParseCommandLine(cmdInfo); if (!ProcessShellCommand(cmdInfo)) return FALSE; /********************************************************************************/ CMainFrame *pMainFrame = (CMainFrame *)AfxGetMainWnd(); pMainFrame->m_pViews[0] = pMainFrame->GetActiveView(); pMainFrame->m_pViews[1] = new CPreView; pMainFrame->m_pViews[1]->Create(NULL, NULL, AFX_WS_DEFAULT_VIEW, pMainFrame->rectDefault, pMainFrame, AFX_IDW_PANE_FIRST + 1, NULL); // Добавляем представление в документ pMainFrame->GetActiveDocument()->AddView(pMainFrame->m_pViews[1]); // Номер изначально отображаемого представления pMainFrame->m_nCurView = 0; /********************************************************************************/ m_pMainWnd->ShowWindow(SW_SHOW); m_pMainWnd->UpdateWindow(); return TRUE; } // CAboutDlg dialog used for App About class CAboutDlg : public CDialog { public: CAboutDlg(); // Dialog Data enum { IDD = IDD_ABOUTBOX }; protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support // Implementation protected: DECLARE_MESSAGE_MAP() }; CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD) { } void CAboutDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); } BEGIN_MESSAGE_MAP(CAboutDlg, CDialog) END_MESSAGE_MAP() // App command to run the dialog void CNakladnayaApp::OnAppAbout() { CAboutDlg aboutDlg; aboutDlg.DoModal(); } // CNakladnayaApp message handlers /*****************************************************************************************/ // NakladnayaView.h : interface of the CEnterDataView class // #pragma once class CEnterDataView : public CFormView { protected: // create from serialization only CEnterDataView(); DECLARE_DYNCREATE(CEnterDataView) public: enum{ IDD = IDD_NAKLADNAYA_FORM }; // Attributes public: CNakladnayaDoc* GetDocument() const; // Operations public: // Overrides public: virtual BOOL PreCreateWindow(CREATESTRUCT& cs); protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support virtual void OnInitialUpdate(); // called first time after construct // Implementation public: virtual ~CEnterDataView(); #ifdef _DEBUG virtual void AssertValid() const; virtual void Dump(CDumpContext& dc) const; #endif protected: // Generated message map functions protected: DECLARE_MESSAGE_MAP() }; #ifndef _DEBUG // debug version in NakladnayaView.cpp inline CNakladnayaDoc* CEnterDataView::GetDocument() const { return reinterpret_cast<CNakladnayaDoc*>(m_pDocument); } #endif /***************************************************************************************/ // NakladnayaView.cpp : implementation of the CEnterDataView class // #include "stdafx.h" #include "Nakladnaya.h" #include "NakladnayaDoc.h" #include "NakladnayaView.h" #ifdef _DEBUG #define new DEBUG_NEW #endif // CEnterDataView IMPLEMENT_DYNCREATE(CEnterDataView, CFormView) BEGIN_MESSAGE_MAP(CEnterDataView, CFormView) END_MESSAGE_MAP() // CEnterDataView construction/destruction CEnterDataView::CEnterDataView() : CFormView(CEnterDataView::IDD) { // TODO: add construction code here } CEnterDataView::~CEnterDataView() { } void CEnterDataView::DoDataExchange(CDataExchange* pDX) { CFormView::DoDataExchange(pDX); } BOOL CEnterDataView::PreCreateWindow(CREATESTRUCT& cs) { // TODO: Modify the Window class or styles here by modifying // the CREATESTRUCT cs return CFormView::PreCreateWindow(cs); } void CEnterDataView::OnInitialUpdate() { CFormView::OnInitialUpdate(); GetParentFrame()->RecalcLayout(); ResizeParentToFit(); } // CEnterDataView diagnostics #ifdef _DEBUG void CEnterDataView::AssertValid() const { CFormView::AssertValid(); } void CEnterDataView::Dump(CDumpContext& dc) const { CFormView::Dump(dc); } CNakladnayaDoc* CEnterDataView::GetDocument() const // non-debug version is inline { ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CNakladnayaDoc))); return (CNakladnayaDoc*)m_pDocument; } #endif //_DEBUG // CEnterDataView message handlers /**************************************************************************************/ // NakladnayaView.cpp : implementation of the CEnterDataView class // #include "stdafx.h" #include "Nakladnaya.h" #include "NakladnayaDoc.h" #include "NakladnayaView.h" #ifdef _DEBUG #define new DEBUG_NEW #endif // CEnterDataView IMPLEMENT_DYNCREATE(CEnterDataView, CFormView) BEGIN_MESSAGE_MAP(CEnterDataView, CFormView) END_MESSAGE_MAP() // CEnterDataView construction/destruction CEnterDataView::CEnterDataView() : CFormView(CEnterDataView::IDD) { // TODO: add construction code here } CEnterDataView::~CEnterDataView() { } void CEnterDataView::DoDataExchange(CDataExchange* pDX) { CFormView::DoDataExchange(pDX); } BOOL CEnterDataView::PreCreateWindow(CREATESTRUCT& cs) { // TODO: Modify the Window class or styles here by modifying // the CREATESTRUCT cs return CFormView::PreCreateWindow(cs); } void CEnterDataView::OnInitialUpdate() { CFormView::OnInitialUpdate(); GetParentFrame()->RecalcLayout(); ResizeParentToFit(); } // CEnterDataView diagnostics #ifdef _DEBUG void CEnterDataView::AssertValid() const { CFormView::AssertValid(); } void CEnterDataView::Dump(CDumpContext& dc) const { CFormView::Dump(dc); } CNakladnayaDoc* CEnterDataView::GetDocument() const // non-debug version is inline { ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CNakladnayaDoc))); return (CNakladnayaDoc*)m_pDocument; } #endif //_DEBUG /**********************************************************************************/ // PreView.cpp : implementation file // #include "stdafx.h" #include "Nakladnaya.h" #include "PreView.h" #include "NakladnayaDoc.h" // CPreView IMPLEMENT_DYNCREATE(CPreView, CScrollView) CPreView::CPreView() { } CPreView::~CPreView() { } BEGIN_MESSAGE_MAP(CPreView, CScrollView) END_MESSAGE_MAP() // CPreView drawing void CPreView::OnInitialUpdate() { CScrollView::OnInitialUpdate(); CSize sizeTotal; // TODO: calculate the total size of this view sizeTotal.cx = sizeTotal.cy = 100; SetScrollSizes(MM_TEXT, sizeTotal); } void CPreView::OnDraw(CDC* pDC) { //CDocument* pDoc = GetDocument(); // TODO: add draw code here CNakladnayaDoc* pDoc = GetDocument(); if (!pDoc) return; } // CPreView diagnostics #ifdef _DEBUG void CPreView::AssertValid() const { CScrollView::AssertValid(); } void CPreView::Dump(CDumpContext& dc) const { CScrollView::Dump(dc); } #endif //_DEBUG // CPreView message handlers /********************************************************************************/ Добавлено @ 13:15
// MainFrm.h : interface of the CMainFrame class // #pragma once class CMainFrame : public CFrameWnd { protected: // create from serialization only CMainFrame(); DECLARE_DYNCREATE(CMainFrame) // Attributes public: // Operations public: // Overrides public: virtual BOOL PreCreateWindow(CREATESTRUCT& cs); // Implementation public: virtual ~CMainFrame(); #ifdef _DEBUG virtual void AssertValid() const; virtual void Dump(CDumpContext& dc) const; #endif protected: // control bar embedded members CStatusBar m_wndStatusBar; CToolBar m_wndToolBar; // Generated message map functions protected: afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); DECLARE_MESSAGE_MAP() public: CView* m_pViews[2]; int m_nCurView; afx_msg void OnSwitchView(UINT nID); afx_msg void OnUpdateViewEnterDate(CCmdUI *pCmdUI); afx_msg void OnUpdateViewPreviewData(CCmdUI *pCmdUI); }; /********************************************************************************************/ // MainFrm.cpp : implementation of the CMainFrame class // #include "stdafx.h" #include "Nakladnaya.h" #include "MainFrm.h" #include "NakladnayaDoc.h" #include "NakladnayaView.h" #include "PreView.h" #include ".\mainfrm.h" #ifdef _DEBUG #define new DEBUG_NEW #endif // CMainFrame IMPLEMENT_DYNCREATE(CMainFrame, CFrameWnd) BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd) ON_WM_CREATE() ON_COMMAND_RANGE(ID_VIEW_ENTER_DATE, ID_VIEW_PREVIEW_DATA, OnSwitchView) ON_UPDATE_COMMAND_UI(ID_VIEW_ENTER_DATE, OnUpdateViewEnterDate) ON_UPDATE_COMMAND_UI(ID_VIEW_PREVIEW_DATA, OnUpdateViewPreviewData) END_MESSAGE_MAP() static UINT indicators[] = { ID_SEPARATOR, // status line indicator ID_INDICATOR_CAPS, ID_INDICATOR_NUM, ID_INDICATOR_SCRL, }; // CMainFrame construction/destruction CMainFrame::CMainFrame() { // TODO: add member initialization code here } CMainFrame::~CMainFrame() { } int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CFrameWnd::OnCreate(lpCreateStruct) == -1) return -1; if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) || !m_wndToolBar.LoadToolBar(IDR_MAINFRAME)) { TRACE0("Failed to create toolbar\n"); return -1; // fail to create } if (!m_wndStatusBar.Create(this) || !m_wndStatusBar.SetIndicators(indicators, sizeof(indicators)/sizeof(UINT))) { TRACE0("Failed to create status bar\n"); return -1; // fail to create } // TODO: Delete these three lines if you don't want the toolbar to be dockable m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY); EnableDocking(CBRS_ALIGN_ANY); DockControlBar(&m_wndToolBar); return 0; } BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs) { if( !CFrameWnd::PreCreateWindow(cs) ) return FALSE; // TODO: Modify the Window class or styles here by modifying // the CREATESTRUCT cs return TRUE; } // CMainFrame diagnostics #ifdef _DEBUG void CMainFrame::AssertValid() const { CFrameWnd::AssertValid(); } void CMainFrame::Dump(CDumpContext& dc) const { CFrameWnd::Dump(dc); } #endif //_DEBUG // CMainFrame message handlers void CMainFrame::OnSwitchView(UINT nID) { // Индекс активизируемого представления int nNewView = nID - ID_VIEW_ENTER_DATE; if (m_nCurView == nNewView) return; // Текущее активное представление CView *pActiveView = m_pViews[m_nCurView]; // Активизируемое представление CView *pNewView = m_pViews[nNewView]; // Меняем идентификаторы предствлений int nSwitchChildID = pNewView->GetDlgCtrlID(); pNewView->SetDlgCtrlID(AFX_IDW_PANE_FIRST); pActiveView->SetDlgCtrlID(nSwitchChildID); // Прячем текущее представление pActiveView->ShowWindow(SW_HIDE); // Показываем активизируемое представление pNewView->ShowWindow(SW_SHOW); // Вносим изменения в фрейм и обновляем его SetActiveView(pNewView); RecalcLayout(); // Перерисовываем активизируемое представление // после обновления фрейма pNewView->Invalidate(); // Обновляем номер текущего представления m_nCurView = nNewView; } void CMainFrame::OnUpdateViewEnterDate(CCmdUI *pCmdUI) { pCmdUI->SetCheck(m_nCurView == 0); } void CMainFrame::OnUpdateViewPreviewData(CCmdUI *pCmdUI) { pCmdUI->SetCheck(m_nCurView == 1); } /**************************************************************************************/ // Nakladnaya.h : main header file for the Nakladnaya application // #pragma once #ifndef __AFXWIN_H__ #error include 'stdafx.h' before including this file for PCH #endif #include "resource.h" // main symbols // CNakladnayaApp: // See Nakladnaya.cpp for the implementation of this class // class CNakladnayaApp : public CWinApp { public: CNakladnayaApp(); // Overrides public: virtual BOOL InitInstance(); // Implementation afx_msg void OnAppAbout(); DECLARE_MESSAGE_MAP() }; extern CNakladnayaApp theApp; /*******************************************************************************************/ // Nakladnaya.cpp : Defines the class behaviors for the application. // #include "stdafx.h" #include "Nakladnaya.h" #include "MainFrm.h" #include "NakladnayaDoc.h" #include "NakladnayaView.h" #include "PreView.h" #ifdef _DEBUG #define new DEBUG_NEW #endif // CNakladnayaApp BEGIN_MESSAGE_MAP(CNakladnayaApp, CWinApp) ON_COMMAND(ID_APP_ABOUT, OnAppAbout) // Standard file based document commands ON_COMMAND(ID_FILE_NEW, CWinApp::OnFileNew) ON_COMMAND(ID_FILE_OPEN, CWinApp::OnFileOpen) END_MESSAGE_MAP() // CNakladnayaApp construction CNakladnayaApp::CNakladnayaApp() { // TODO: add construction code here, // Place all significant initialization in InitInstance } // The one and only CNakladnayaApp object CNakladnayaApp theApp; // CNakladnayaApp initialization BOOL CNakladnayaApp::InitInstance() { InitCommonControls(); CWinApp::InitInstance(); // Initialize OLE libraries // if (!AfxOleInit()) // { // AfxMessageBox(IDP_OLE_INIT_FAILED); // return FALSE; // } // AfxEnableControlContainer(); SetRegistryKey(_T("Local AppWizard-Generated Applications")); LoadStdProfileSettings(4); // Load standard INI file options (including MRU) CSingleDocTemplate* pDocTemplate; pDocTemplate = new CSingleDocTemplate( IDR_MAINFRAME, RUNTIME_CLASS(CNakladnayaDoc), RUNTIME_CLASS(CMainFrame), // main SDI frame window RUNTIME_CLASS(CEnterDataView)); if (!pDocTemplate) return FALSE; AddDocTemplate(pDocTemplate); // Parse command line for standard shell commands, DDE, file open CCommandLineInfo cmdInfo; ParseCommandLine(cmdInfo); if (!ProcessShellCommand(cmdInfo)) return FALSE; /********************************************************************************/ CMainFrame *pMainFrame = (CMainFrame *)AfxGetMainWnd(); pMainFrame->m_pViews[0] = pMainFrame->GetActiveView(); pMainFrame->m_pViews[1] = new CPreView; pMainFrame->m_pViews[1]->Create(NULL, NULL, AFX_WS_DEFAULT_VIEW, pMainFrame->rectDefault, pMainFrame, AFX_IDW_PANE_FIRST + 1, NULL); // Добавляем представление в документ pMainFrame->GetActiveDocument()->AddView(pMainFrame->m_pViews[1]); // Номер изначально отображаемого представления pMainFrame->m_nCurView = 0; /********************************************************************************/ m_pMainWnd->ShowWindow(SW_SHOW); m_pMainWnd->UpdateWindow(); return TRUE; } // CAboutDlg dialog used for App About class CAboutDlg : public CDialog { public: CAboutDlg(); // Dialog Data enum { IDD = IDD_ABOUTBOX }; protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support // Implementation protected: DECLARE_MESSAGE_MAP() }; CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD) { } void CAboutDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); } BEGIN_MESSAGE_MAP(CAboutDlg, CDialog) END_MESSAGE_MAP() // App command to run the dialog void CNakladnayaApp::OnAppAbout() { CAboutDlg aboutDlg; aboutDlg.DoModal(); } // CNakladnayaApp message handlers /*****************************************************************************************/ // NakladnayaView.h : interface of the CEnterDataView class // #pragma once class CEnterDataView : public CFormView { protected: // create from serialization only CEnterDataView(); DECLARE_DYNCREATE(CEnterDataView) public: enum{ IDD = IDD_NAKLADNAYA_FORM }; // Attributes public: CNakladnayaDoc* GetDocument() const; // Operations public: // Overrides public: virtual BOOL PreCreateWindow(CREATESTRUCT& cs); protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support virtual void OnInitialUpdate(); // called first time after construct // Implementation public: virtual ~CEnterDataView(); #ifdef _DEBUG virtual void AssertValid() const; virtual void Dump(CDumpContext& dc) const; #endif protected: // Generated message map functions protected: DECLARE_MESSAGE_MAP() }; #ifndef _DEBUG // debug version in NakladnayaView.cpp inline CNakladnayaDoc* CEnterDataView::GetDocument() const { return reinterpret_cast<CNakladnayaDoc*>(m_pDocument); } #endif /***************************************************************************************/ // NakladnayaView.cpp : implementation of the CEnterDataView class // #include "stdafx.h" #include "Nakladnaya.h" #include "NakladnayaDoc.h" #include "NakladnayaView.h" #ifdef _DEBUG #define new DEBUG_NEW #endif // CEnterDataView IMPLEMENT_DYNCREATE(CEnterDataView, CFormView) BEGIN_MESSAGE_MAP(CEnterDataView, CFormView) END_MESSAGE_MAP() // CEnterDataView construction/destruction CEnterDataView::CEnterDataView() : CFormView(CEnterDataView::IDD) { // TODO: add construction code here } CEnterDataView::~CEnterDataView() { } void CEnterDataView::DoDataExchange(CDataExchange* pDX) { CFormView::DoDataExchange(pDX); } BOOL CEnterDataView::PreCreateWindow(CREATESTRUCT& cs) { // TODO: Modify the Window class or styles here by modifying // the CREATESTRUCT cs return CFormView::PreCreateWindow(cs); } void CEnterDataView::OnInitialUpdate() { CFormView::OnInitialUpdate(); GetParentFrame()->RecalcLayout(); ResizeParentToFit(); } // CEnterDataView diagnostics #ifdef _DEBUG void CEnterDataView::AssertValid() const { CFormView::AssertValid(); } void CEnterDataView::Dump(CDumpContext& dc) const { CFormView::Dump(dc); } CNakladnayaDoc* CEnterDataView::GetDocument() const // non-debug version is inline { ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CNakladnayaDoc))); return (CNakladnayaDoc*)m_pDocument; } #endif //_DEBUG // CEnterDataView message handlers /**************************************************************************************/ // NakladnayaView.cpp : implementation of the CEnterDataView class // #include "stdafx.h" #include "Nakladnaya.h" #include "NakladnayaDoc.h" #include "NakladnayaView.h" #ifdef _DEBUG #define new DEBUG_NEW #endif // CEnterDataView IMPLEMENT_DYNCREATE(CEnterDataView, CFormView) BEGIN_MESSAGE_MAP(CEnterDataView, CFormView) END_MESSAGE_MAP() // CEnterDataView construction/destruction CEnterDataView::CEnterDataView() : CFormView(CEnterDataView::IDD) { // TODO: add construction code here } CEnterDataView::~CEnterDataView() { } void CEnterDataView::DoDataExchange(CDataExchange* pDX) { CFormView::DoDataExchange(pDX); } BOOL CEnterDataView::PreCreateWindow(CREATESTRUCT& cs) { // TODO: Modify the Window class or styles here by modifying // the CREATESTRUCT cs return CFormView::PreCreateWindow(cs); } void CEnterDataView::OnInitialUpdate() { CFormView::OnInitialUpdate(); GetParentFrame()->RecalcLayout(); ResizeParentToFit(); } // CEnterDataView diagnostics #ifdef _DEBUG void CEnterDataView::AssertValid() const { CFormView::AssertValid(); } void CEnterDataView::Dump(CDumpContext& dc) const { CFormView::Dump(dc); } CNakladnayaDoc* CEnterDataView::GetDocument() const // non-debug version is inline { ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CNakladnayaDoc))); return (CNakladnayaDoc*)m_pDocument; } #endif //_DEBUG /**********************************************************************************/ // PreView.cpp : implementation file // #include "stdafx.h" #include "Nakladnaya.h" #include "PreView.h" #include "NakladnayaDoc.h" // CPreView IMPLEMENT_DYNCREATE(CPreView, CScrollView) CPreView::CPreView() { } CPreView::~CPreView() { } BEGIN_MESSAGE_MAP(CPreView, CScrollView) END_MESSAGE_MAP() // CPreView drawing void CPreView::OnInitialUpdate() { CScrollView::OnInitialUpdate(); CSize sizeTotal; // TODO: calculate the total size of this view sizeTotal.cx = sizeTotal.cy = 100; SetScrollSizes(MM_TEXT, sizeTotal); } void CPreView::OnDraw(CDC* pDC) { //CDocument* pDoc = GetDocument(); // TODO: add draw code here CNakladnayaDoc* pDoc = GetDocument(); if (!pDoc) return; } // CPreView diagnostics #ifdef _DEBUG void CPreView::AssertValid() const { CScrollView::AssertValid(); } void CPreView::Dump(CDumpContext& dc) const { CScrollView::Dump(dc); } #endif //_DEBUG // CPreView message handlers /********************************************************************************/ |
||||
|
|||||
| Coocky |
|
|||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: 25 Всего: 62 |
RSV, я ж просил! Справа есть кнопочка КОД !
Нажми ее, и весь код помести туда! Отредактируй сообщение! Невозможно понять ни хрена! Добавлено @ 13:25
Вот переключение.. Покажи то место, где вываливается! -------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья |
|||
|
||||
| Coocky |
|
|||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: 25 Всего: 62 |
Вот примерный код , как переключаются представления и создаются Это сообщение отредактировал(а) Coocky - 10.3.2006, 14:29 -------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья |
|||
|
||||
| RSV |
|
||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 61 Регистрация: 27.6.2005 Репутация: нет Всего: нет |
|
||||||
|
|||||||
| Coocky |
|
|||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: 25 Всего: 62 |
OnInintialUpdate для CScrollView я думаю перегрузил? Я думаю с правильными параметрами? -------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья |
|||
|
||||
| Coocky |
|
|||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: 25 Всего: 62 |
Вот еще раз глянул...Код вроде правильный, но...
Вызывают сомнения pNewView->Invalidate(); Если для CScrollView, то правильно ли ты ставишь там SetScrollSizes? Второе
Неможет быть.. Поставь брекпоинты во всех функциях твоего класса, производного от CScrollView. Если не помогло: есть стек вызова функций (окошко такое в отладяике, кажется СallStack называется-без студии в руках сейчас не вспомню... ). Там всегда показывется порядок вызова всех функций -------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья |
|||
|
||||
| RSV |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 61 Регистрация: 27.6.2005 Репутация: нет Всего: нет |
Спасибо за помощь думаю, что через отладчик найду ошибку. Только у меня еще один вопрос где указывать размер окна которое открывается при старте программы. Мне необходимо что бы оно открывалось на весь экран. |
||||
|
|||||
| Coocky |
|
|||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: 25 Всего: 62 |
Есть два варианта
1 обработать сообщение ON_WM_GETMINMAXINFO() В обработчике сообщения OnGetMinMaxInfo(MINMAXINFO* lpMMI) передается указатель lpMMI typedef struct tagMINMAXINFO { POINT ptReserved; POINT ptMaxSize; POINT ptMaxPosition; POINT ptMinTrackSize; POINT ptMaxTrackSize; } MINMAXINFO; Просто заполни поля Есть сторой вариант В твоем классе приложения,производном от CWinApp есть функция InitInstance() Там есть код, который сгенерировала студия m_pMainWnd->ShowWindow(SW_SHOW); Замени флаг в этой функции на нужный (SW_SHOWMAXIMIZED ) Это сообщение отредактировал(а) Coocky - 13.3.2006, 17:41 -------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |