Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Программирование под Windows > Visual C++
Перезагрузить страницу Работа по книге Хортона где ошибка в коде MFC, Sketcher
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
MDmitry_ MDmitry_ вне форума
Member
 
Сообщений: 13
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 09.02.2011
По умолчанию Работа по книге Хортона где ошибка в коде MFC, Sketcher - 15.02.2011, 05:45

Доброго времени суток, читаю книгу Хортона. Приложение Sketcher, думаю многие её читали. Не могу понять где ошибка

Вот все файлы.
ChildFrm.h
cpp Код:
// ChildFrm.h : interface of the CChildFrame class
//
 
 
#pragma once
 
 
class CChildFrame : public CMDIChildWnd
{
        DECLARE_DYNCREATE(CChildFrame)
public:
        CChildFrame();
 
// Attributes
public:
 
// Operations
public:
 
// Overrides
        virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
 
// Implementation
public:
        virtual ~CChildFrame();
#ifdef _DEBUG
        virtual void AssertValid() const;
        virtual void Dump(CDumpContext& dc) const;
#endif
 
// Generated message map functions
protected:
        DECLARE_MESSAGE_MAP()
};

MainFrm.h
cpp Код:
// ChildFrm.h : interface of the CChildFrame class
//
 
 
#pragma once
 
 
class CChildFrame : public CMDIChildWnd
{
        DECLARE_DYNCREATE(CChildFrame)
public:
        CChildFrame();
 
// Attributes
public:
 
// Operations
public:
 
// Overrides
        virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
 
// Implementation
public:
        virtual ~CChildFrame();
#ifdef _DEBUG
        virtual void AssertValid() const;
        virtual void Dump(CDumpContext& dc) const;
#endif
 
// Generated message map functions
protected:
        DECLARE_MESSAGE_MAP()
};

OurConstants.h
cpp Код:
#pragma once
 
const unsigned int LINE=1010;
const unsigned int RECTANGLE=1020;
const unsigned int CIRCLE=1030;
const unsigned int CURVE=1040;
 
const COLORREF BLACK=RGB(0,0,0);
const COLORREF RED=RGB(255,0,0);
const COLORREF GREEN=RGB(0,255,0);
const COLORREF BLUE=RGB(0,0,255);

Resource.h
cpp Код:
//{{NO_DEPENDENCIES}}
// Microsoft Visual C++ generated include file.
// Used by Sketcher.rc
//
#define IDD_ABOUTBOX                    100
#define IDP_OLE_INIT_FAILED             100
#define IDR_MAINFRAME                   128
#define IDR_SketcherTYPE                129
#define ID_ELEMENT_LINE                 32771
#define ID_ELEMENT_RECTENGLE            32772
#define ID_ELEMENT_CIRCLE               32773
#define ID_ELEMENT_CURVE                32774
#define ID_COLOR_BLACK                  32775
#define ID_COLOR_RED                    32776
#define ID_COLOR_GREEN                  32777
#define ID_COLOR_BLUE                   32778
#define ID_BUTTON32780                  32780
#define ID_BUTTON32781                  32781
#define ID_BUTTON32782                  32782
#define ID_BUTTON32783                  32783
#define ID_BUTTON32784                  32784
#define ID_BUTTON32785                  32785
 
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE        130
#define _APS_NEXT_COMMAND_VALUE         32786
#define _APS_NEXT_CONTROL_VALUE         1000
#define _APS_NEXT_SYMED_VALUE           101
#endif
#endif

Sketcher.h
cpp Код:
// Sketcher.h : main header file for the Sketcher application
//
#pragma once
 
#ifndef __AFXWIN_H__
        #error "include 'stdafx.h' before including this file for PCH"
#endif
 
#include "resource.h"       // main symbols
#include "OurConstants.h"      
 
 
// CSketcherApp:
// See Sketcher.cpp for the implementation of this class
//
 
class CSketcherApp : public CWinApp
{
public:
        CSketcherApp();
 
 
// Overrides
public:
        virtual BOOL InitInstance();
 
// Implementation
        afx_msg void OnAppAbout();
        DECLARE_MESSAGE_MAP()
};
 
extern CSketcherApp theApp

SketcherDoc.h
cpp Код:
#pragma once
 
class CSketcherDoc : public CDocument
{
protected: // create from serialization only
        CSketcherDoc();
        DECLARE_DYNCREATE(CSketcherDoc)
 
// Attributes
public:
 
// Operations
public:
 
// Overrides
public:
        virtual BOOL OnNewDocument();
        virtual void Serialize(CArchive& ar);
 
// Implementation
public:
        virtual ~CSketcherDoc();
#ifdef _DEBUG
        virtual void AssertValid() const;
        virtual void Dump(CDumpContext& dc) const;
#endif
 
protected:
 
// Generated message map functions
protected:
        DECLARE_MESSAGE_MAP()
public:
        afx_msg void OnElementLine();
public:
        afx_msg void OnElementRectengle();
public:
        afx_msg void OnElementCircle();
public:
        afx_msg void OnElementCurve();
public:
        afx_msg void OnColorBlack();
public:
        afx_msg void OnColorRed();
public:
        afx_msg void OnColorGreen();
public:
        afx_msg void OnColorBlue();
protected:
        unsigned int m_Element;   // Текущий тип элемента
        COLORREF m_Color;         // Текущий цвет
public:
        afx_msg void OnUpdateColorBlack(CCmdUI *pCmdUI);
public:
        afx_msg void OnUpdateColorRed(CCmdUI *pCmdUI);
public:
        afx_msg void OnUpdateColorGreen(CCmdUI *pCmdUI);
public:
        afx_msg void OnUpdateColorBlue(CCmdUI *pCmdUI);
public:
        afx_msg void OnUpdateElementLine(CCmdUI *pCmdUI);
public:
        afx_msg void OnUpdateElementRectengle(CCmdUI *pCmdUI);
public:
        afx_msg void OnUpdateElementCircle(CCmdUI *pCmdUI);
public:
        afx_msg void OnUpdateElementCurve(CCmdUI *pCmdUI);
};
Ответить с цитированием
  (#2 (permalink)) Старый
MDmitry_ MDmitry_ вне форума
Member
 
Сообщений: 13
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 09.02.2011
По умолчанию 15.02.2011, 05:50

SketcherView.h
cpp Код:
#pragma once
 
class CSketcherDoc : public CDocument
{
protected: // create from serialization only
        CSketcherDoc();
        DECLARE_DYNCREATE(CSketcherDoc)
 
// Attributes
public:
 
// Operations
public:
 
// Overrides
public:
        virtual BOOL OnNewDocument();
        virtual void Serialize(CArchive& ar);
 
// Implementation
public:
        virtual ~CSketcherDoc();
#ifdef _DEBUG
        virtual void AssertValid() const;
        virtual void Dump(CDumpContext& dc) const;
#endif
 
protected:
 
// Generated message map functions
protected:
        DECLARE_MESSAGE_MAP()
public:
        afx_msg void OnElementLine();
public:
        afx_msg void OnElementRectengle();
public:
        afx_msg void OnElementCircle();
public:
        afx_msg void OnElementCurve();
public:
        afx_msg void OnColorBlack();
public:
        afx_msg void OnColorRed();
public:
        afx_msg void OnColorGreen();
public:
        afx_msg void OnColorBlue();
protected:
        unsigned int m_Element;   // Текущий тип элемента
        COLORREF m_Color;         // Текущий цвет
public:
        afx_msg void OnUpdateColorBlack(CCmdUI *pCmdUI);
public:
        afx_msg void OnUpdateColorRed(CCmdUI *pCmdUI);
public:
        afx_msg void OnUpdateColorGreen(CCmdUI *pCmdUI);
public:
        afx_msg void OnUpdateColorBlue(CCmdUI *pCmdUI);
public:
        afx_msg void OnUpdateElementLine(CCmdUI *pCmdUI);
public:
        afx_msg void OnUpdateElementRectengle(CCmdUI *pCmdUI);
public:
        afx_msg void OnUpdateElementCircle(CCmdUI *pCmdUI);
public:
        afx_msg void OnUpdateElementCurve(CCmdUI *pCmdUI);
};

stdafx.h
cpp Код:
// stdafx.h : include file for standard system include files,
// or project specific include files that are used frequently,
// but are changed infrequently
 
#pragma once
 
#ifndef _SECURE_ATL
#define _SECURE_ATL 1
#endif
 
#ifndef VC_EXTRALEAN
#define VC_EXTRALEAN            // Exclude rarely-used stuff from Windows headers
#endif
 
// Modify the following defines if you have to target a platform prior to the ones specified below.
// Refer to MSDN for the latest info on corresponding values for different platforms.
#ifndef WINVER                          // Allow use of features specific to Windows XP or later.
#define WINVER 0x0501           // Change this to the appropriate value to target other versions of Windows.
#endif
 
#ifndef _WIN32_WINNT            // Allow use of features specific to Windows XP or later.                  
#define _WIN32_WINNT 0x0501     // Change this to the appropriate value to target other versions of Windows.
#endif                                          
 
#ifndef _WIN32_WINDOWS          // Allow use of features specific to Windows 98 or later.
#define _WIN32_WINDOWS 0x0410 // Change this to the appropriate value to target Windows Me or later.
#endif
 
#ifndef _WIN32_IE                       // Allow use of features specific to IE 6.0 or later.
#define _WIN32_IE 0x0600        // Change this to the appropriate value to target other versions of IE.
#endif
 
#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS      // some CString constructors will be explicit
 
// turns off MFC's hiding of some common and often safely ignored warning messages
#define _AFX_ALL_WARNINGS
 
#include <afxwin.h>         // MFC core and standard components
#include <afxext.h>         // MFC extensions
 
 
#include <afxdisp.h>        // MFC Automation classes
 
 
 
#ifndef _AFX_NO_OLE_SUPPORT
#include <afxdtctl.h>           // MFC support for Internet Explorer 4 Common Controls
#endif
#ifndef _AFX_NO_AFXCMN_SUPPORT
#include <afxcmn.h>                     // MFC support for Windows Common Controls
#endif // _AFX_NO_AFXCMN_SUPPORT
 
 
 
 
 
 
 
 
 
#ifdef _UNICODE
#if defined _M_IX86
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"")
#elif defined _M_IA64
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='ia64' publicKeyToken='6595b64144ccf1df' language='*'\"")
#elif defined _M_X64
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df' language='*'\"")
#else
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")
#endif
#endif

ChildFrm.cpp
cpp Код:
// ChildFrm.cpp : implementation of the CChildFrame class
//
#include "stdafx.h"
#include "Sketcher.h"
 
#include "ChildFrm.h"
 
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
 
 
// CChildFrame
 
IMPLEMENT_DYNCREATE(CChildFrame, CMDIChildWnd)
 
BEGIN_MESSAGE_MAP(CChildFrame, CMDIChildWnd)
END_MESSAGE_MAP()
 
 
// CChildFrame construction/destruction
 
CChildFrame::CChildFrame()
{
        // TODO: add member initialization code here
}
 
CChildFrame::~CChildFrame()
{
}
 
 
BOOL CChildFrame::PreCreateWindow(CREATESTRUCT& cs)
{
        // TODO: Modify the Window class or styles here by modifying the CREATESTRUCT cs
        if( !CMDIChildWnd::PreCreateWindow(cs) )
                return FALSE;
 
        return TRUE;
}
 
 
// CChildFrame diagnostics
 
#ifdef _DEBUG
void CChildFrame::AssertValid() const
{
        CMDIChildWnd::AssertValid();
}
 
void CChildFrame::Dump(CDumpContext& dc) const
{
        CMDIChildWnd::Dump(dc);
}
 
#endif //_DEBUG
 
 
// CChildFrame message handlers

MainFrm.cpp
cpp Код:
// MainFrm.cpp : implementation of the CMainFrame class
//
 
#include "stdafx.h"
#include "Sketcher.h"
 
#include "MainFrm.h"
 
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
 
 
// CMainFrame
 
IMPLEMENT_DYNAMIC(CMainFrame, CMDIFrameWnd)
 
BEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameWnd)
        ON_WM_CREATE()
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 (CMDIFrameWnd::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( !CMDIFrameWnd::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
{
        CMDIFrameWnd::AssertValid();
}
 
void CMainFrame::Dump(CDumpContext& dc) const
{
        CMDIFrameWnd::Dump(dc);
}
 
#endif //_DEBUG
 
 
// CMainFrame message handlers
Ответить с цитированием
  (#3 (permalink)) Старый
MDmitry_ MDmitry_ вне форума
Member
 
Сообщений: 13
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 09.02.2011
По умолчанию 15.02.2011, 06:00

Sketcher.cpp
cpp Код:
// Sketcher.cpp : Defines the class behaviors for the application.
//
 
#include "stdafx.h"
#include "Sketcher.h"
#include "MainFrm.h"
 
#include "ChildFrm.h"
#include "SketcherDoc.h"
#include "SketcherView.h"
 
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
 
 
// CSketcherApp
 
BEGIN_MESSAGE_MAP(CSketcherApp, CWinApp)
        ON_COMMAND(ID_APP_ABOUT, &CSketcherApp::OnAppAbout)
        // Standard file based document commands
        ON_COMMAND(ID_FILE_NEW, &CWinApp::OnFileNew)
        ON_COMMAND(ID_FILE_OPEN, &CWinApp::OnFileOpen)
        // Standard print setup command
        ON_COMMAND(ID_FILE_PRINT_SETUP, &CWinApp::OnFilePrintSetup)
END_MESSAGE_MAP()
 
 
// CSketcherApp construction
 
CSketcherApp::CSketcherApp()
{
        // TODO: add construction code here,
        // Place all significant initialization in InitInstance
}
 
 
// The one and only CSketcherApp object
 
CSketcherApp theApp;
 
 
// CSketcherApp initialization
 
BOOL CSketcherApp::InitInstance()
{
        // InitCommonControlsEx() is required on Windows XP if an application
        // manifest specifies use of ComCtl32.dll version 6 or later to enable
        // visual styles.  Otherwise, any window creation will fail.
        INITCOMMONCONTROLSEX InitCtrls;
        InitCtrls.dwSize = sizeof(InitCtrls);
        // Set this to include all the common control classes you want to use
        // in your application.
        InitCtrls.dwICC = ICC_WIN95_CLASSES;
        InitCommonControlsEx(&InitCtrls);
 
        CWinApp::InitInstance();
 
        // Initialize OLE libraries
        if (!AfxOleInit())
        {
                AfxMessageBox(IDP_OLE_INIT_FAILED);
                return FALSE;
        }
        AfxEnableControlContainer();
        // Standard initialization
        // If you are not using these features and wish to reduce the size
        // of your final executable, you should remove from the following
        // the specific initialization routines you do not need
        // Change the registry key under which our settings are stored
        // TODO: You should modify this string to be something appropriate
        // such as the name of your company or organization
        SetRegistryKey(_T("Local AppWizard-Generated Applications"));
        LoadStdProfileSettings(4);  // Load standard INI file options (including MRU)
        // Register the application's document templates.  Document templates
        //  serve as the connection between documents, frame windows and views
        CMultiDocTemplate* pDocTemplate;
        pDocTemplate = new CMultiDocTemplate(IDR_SketcherTYPE,
                RUNTIME_CLASS(CSketcherDoc),
                RUNTIME_CLASS(CChildFrame), // custom MDI child frame
                RUNTIME_CLASS(CSketcherView));
        if (!pDocTemplate)
                return FALSE;
        AddDocTemplate(pDocTemplate);
 
        // create main MDI Frame window
        CMainFrame* pMainFrame = new CMainFrame;
        if (!pMainFrame || !pMainFrame->LoadFrame(IDR_MAINFRAME))
        {
                delete pMainFrame;
                return FALSE;
        }
        m_pMainWnd = pMainFrame;
        // call DragAcceptFiles only if there's a suffix
        //  In an MDI app, this should occur immediately after setting m_pMainWnd
 
 
        // Parse command line for standard shell commands, DDE, file open
        CCommandLineInfo cmdInfo;
        ParseCommandLine(cmdInfo);
 
 
        // Dispatch commands specified on the command line.  Will return FALSE if
        // app was launched with /RegServer, /Register, /Unregserver or /Unregister.
        if (!ProcessShellCommand(cmdInfo))
                return FALSE;
        // The main window has been initialized, so show and update it
        pMainFrame->ShowWindow(m_nCmdShow);
        pMainFrame->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 CSketcherApp::OnAppAbout()
{
        CAboutDlg aboutDlg;
        aboutDlg.DoModal();
}
 
 
// CSketcherApp message handlers

SketcherDoc.cpp
cpp Код:
// SketcherDoc.cpp : implementation of the CSketcherDoc class
//
 
#include "stdafx.h"
#include "Sketcher.h"
 
#include "SketcherDoc.h"
 
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
 
 
// CSketcherDoc
 
IMPLEMENT_DYNCREATE(CSketcherDoc, CDocument)
 
BEGIN_MESSAGE_MAP(CSketcherDoc, CDocument)
        ON_COMMAND(ID_ELEMENT_LINE, &CSketcherDoc::OnElementLine)
        ON_COMMAND(ID_ELEMENT_RECTENGLE, &CSketcherDoc::OnElementRectengle)
        ON_COMMAND(ID_ELEMENT_CIRCLE, &CSketcherDoc::OnElementCircle)
        ON_COMMAND(ID_ELEMENT_CURVE, &CSketcherDoc::OnElementCurve)
        ON_COMMAND(ID_COLOR_BLACK, &CSketcherDoc::OnColorBlack)
        ON_COMMAND(ID_COLOR_RED, &CSketcherDoc::OnColorRed)
        ON_COMMAND(ID_COLOR_GREEN, &CSketcherDoc::OnColorGreen)
        ON_COMMAND(ID_COLOR_BLUE, &CSketcherDoc::OnColorBlue)
        ON_UPDATE_COMMAND_UI(ID_COLOR_BLACK, &CSketcherDoc::OnUpdateColorBlack)
        ON_UPDATE_COMMAND_UI(ID_COLOR_RED, &CSketcherDoc::OnUpdateColorRed)
        ON_UPDATE_COMMAND_UI(ID_COLOR_GREEN, &CSketcherDoc::OnUpdateColorGreen)
        ON_UPDATE_COMMAND_UI(ID_COLOR_BLUE, &CSketcherDoc::OnUpdateColorBlue)
        ON_UPDATE_COMMAND_UI(ID_ELEMENT_LINE, &CSketcherDoc::OnUpdateElementLine)
        ON_UPDATE_COMMAND_UI(ID_ELEMENT_RECTENGLE, &CSketcherDoc::OnUpdateElementRectengle)
        ON_UPDATE_COMMAND_UI(ID_ELEMENT_CIRCLE, &CSketcherDoc::OnUpdateElementCircle)
        ON_UPDATE_COMMAND_UI(ID_ELEMENT_CURVE, &CSketcherDoc::OnUpdateElementCurve)
END_MESSAGE_MAP()
 
// CSketcherDoc construction/destruction
CSketcherDoc::CSketcherDoc(): m_Element(LINE),m_Color(BLACK)
{
        // TODO: add one-time construction code here
}
 
CSketcherDoc::~CSketcherDoc()
{
}
 
BOOL CSketcherDoc::OnNewDocument()
{
        if (!CDocument::OnNewDocument())
                return FALSE;
 
        // TODO: add reinitialization code here
        // (SDI documents will reuse this document)
 
        return TRUE;
}
 
// CSketcherDoc serialization
 
void CSketcherDoc::Serialize(CArchive& ar)
{
        if (ar.IsStoring())
        {
                // TODO: add storing code here
        }
        else
        {
                // TODO: add loading code here
        }
}
 
 
// CSketcherDoc diagnostics
 
#ifdef _DEBUG
void CSketcherDoc::AssertValid() const
{
        CDocument::AssertValid();
}
 
void CSketcherDoc::Dump(CDumpContext& dc) const
{
        CDocument::Dump(dc);
}
#endif //_DEBUG
 
 
// CSketcherDoc commands
 
void CSketcherDoc::OnElementLine()
{
  m_Element=LINE;
}
 
void CSketcherDoc::OnElementRectengle()
{
  m_Element=RECTANGLE;
}
 
void CSketcherDoc::OnElementCircle()
{
  m_Element=CIRCLE;
}
 
void CSketcherDoc::OnElementCurve()
{
  m_Element=CURVE;
}
 
void CSketcherDoc::OnColorBlack()
{
  m_Color=BLACK;
}
 
void CSketcherDoc::OnColorRed()
{
  m_Color=RED;
}
 
void CSketcherDoc::OnColorGreen()
{
  m_Color=GREEN;
}
 
void CSketcherDoc::OnColorBlue()
{
  m_Color=BLUE;
}
 
void CSketcherDoc::OnUpdateColorBlack(CCmdUI *pCmdUI)
{
        pCmdUI->SetCheck(m_Color==BLACK);
}
 
void CSketcherDoc::OnUpdateColorRed(CCmdUI *pCmdUI)
{
        pCmdUI->SetCheck(m_Color==RED);
}
 
void CSketcherDoc::OnUpdateColorGreen(CCmdUI *pCmdUI)
{
        pCmdUI->SetCheck(m_Color==GREEN);
}
 
void CSketcherDoc::OnUpdateColorBlue(CCmdUI *pCmdUI)
{
        pCmdUI->SetCheck(m_Color==BLUE);
}
 
void CSketcherDoc::OnUpdateElementLine(CCmdUI *pCmdUI)
{
        pCmdUI->SetCheck(m_Element==LINE);
}
 
void CSketcherDoc::OnUpdateElementRectengle(CCmdUI *pCmdUI)
{
        pCmdUI->SetCheck(m_Element==RECTANGLE);
}
 
void CSketcherDoc::OnUpdateElementCircle(CCmdUI *pCmdUI)
{
        pCmdUI->SetCheck(m_Element==CIRCLE);
}
 
void CSketcherDoc::OnUpdateElementCurve(CCmdUI *pCmdUI)
{
        pCmdUI->SetCheck(m_Element==CURVE);
}
Ответить с цитированием
  (#4 (permalink)) Старый
MDmitry_ MDmitry_ вне форума
Member
 
Сообщений: 13
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 09.02.2011
По умолчанию 15.02.2011, 06:01

SketcherView.cpp
cpp Код:
// SketcherView.cpp : implementation of the CSketcherView class
//
 
#include "stdafx.h"
#include "Sketcher.h"
 
#include "SketcherDoc.h"
#include "SketcherView.h"
 
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
 
 
// CSketcherView
 
IMPLEMENT_DYNCREATE(CSketcherView, CView)
 
BEGIN_MESSAGE_MAP(CSketcherView, CView)
        // Standard printing commands
        ON_COMMAND(ID_FILE_PRINT, &CView::OnFilePrint)
        ON_COMMAND(ID_FILE_PRINT_DIRECT, &CView::OnFilePrint)
        ON_COMMAND(ID_FILE_PRINT_PREVIEW, &CView::OnFilePrintPreview)
END_MESSAGE_MAP()
 
// CSketcherView construction/destruction
 
CSketcherView::CSketcherView()
{
        // TODO: add construction code here
 
}
 
CSketcherView::~CSketcherView()
{
}
 
BOOL CSketcherView::PreCreateWindow(CREATESTRUCT& cs)
{
        // TODO: Modify the Window class or styles here by modifying
        //  the CREATESTRUCT cs
 
        return CView::PreCreateWindow(cs);
}
 
// CSketcherView drawing
 
void CSketcherView::OnDraw(CDC* /*pDC*/)
{
        CSketcherDoc* pDoc = GetDocument();
        ASSERT_VALID(pDoc);
        if (!pDoc)
                return;
 
        // TODO: add draw code for native data here
}
 
 
// CSketcherView printing
 
BOOL CSketcherView::OnPreparePrinting(CPrintInfo* pInfo)
{
        // default preparation
        return DoPreparePrinting(pInfo);
}
 
void CSketcherView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
        // TODO: add extra initialization before printing
}
 
void CSketcherView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
        // TODO: add cleanup after printing
}
 
 
// CSketcherView diagnostics
 
#ifdef _DEBUG
void CSketcherView::AssertValid() const
{
        CView::AssertValid();
}
 
void CSketcherView::Dump(CDumpContext& dc) const
{
        CView::Dump(dc);
}
 
CSketcherDoc* CSketcherView::GetDocument() const // non-debug version is inline
{
        ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CSketcherDoc)));
        return (CSketcherDoc*)m_pDocument;
}
#endif //_DEBUG
 
 
// CSketcherView message handlers

stdafx.cpp
cpp Код:
// stdafx.cpp : source file that includes just the standard includes
// Sketcher.pch will be the pre-compiled header
// stdafx.obj will contain the pre-compiled type information
 
#include "stdafx.h"

Заранее благодарен за помощь
Ошибка 1>Sketcher.obj : error LNK2001: unresolved external symbol "public: virtual bool __thiscall CWinApp::OnIdle(long)" (?OnIdle@CWinApp@@UAE_NJ@Z)
Вручную вроде менял только класс документа, всё остальное - мастером
Ответить с цитированием
  (#5 (permalink)) Старый
MDmitry_ MDmitry_ вне форума
Member
 
Сообщений: 13
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 09.02.2011
По умолчанию 15.02.2011, 12:45

Файл ScetcherView.h (выше - по ошибке код из другого файла)
cpp Код:
// SketcherView.h : interface of the CSketcherView class
//


#pragma once


class CSketcherView : public CView
{
protected: // create from serialization only
    CSketcherView();
    DECLARE_DYNCREATE(CSketcherView)

// Attributes
public:
    CSketcherDoc* GetDocument() const;

// Operations
public:

// Overrides
public:
    virtual void OnDraw(CDC* pDC);  // overridden to draw this view
    virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
protected:
    virtual BOOL OnPreparePrinting(CPrintInfo* pInfo);
    virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo);
    virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo);

// Implementation
public:
    virtual ~CSketcherView();
#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 SketcherView.cpp
inline CSketcherDoc* CSketcherView::GetDocument() const
   { return reinterpret_cast<CSketcherDoc*>(m_pDocument); }
#endif
Ответить с цитированием
Ads.
  (#6 (permalink)) Старый
Angel5a Angel5a вне форума
Member
 
Сообщений: 1,213
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 28.02.2005
По умолчанию 15.02.2011, 21:01

Ошибка значит что указанная функция не реализована.
попробуйте добавить в описание класса CSketcherApp (в файле Sketcher.h) такую строчку
public: virtual bool __thiscall OnIdle(long) { return true; }
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка в коде web-programm Pascal 2 15.10.2011 12:56
Робота SQL+PHP Ошибка в коде помогите пож. Elfen PHP 2 29.12.2010 20:17
турфирма (ошибка в коде :( ) Discover Prolog 0 08.12.2010 15:27
простая задачка, но в коде где-то ошибка... sergey1801 Pascal 2 01.11.2008 06:48
Ошибка как ее найти в программном коде night-stels Другие мобильные платформы 15 20.08.2008 16:36
User breakpoint exception ошибка в коде Fess exe Вопросы начинающих программистов 2 23.03.2006 20:09
Работа с фотографиями в адресной книге на С++ Tatsiana Visual C++ 0 18.12.2005 01:58
Как определить в чем ошибка в коде -=DeN=- С/С++ 3 30.11.2005 14:50
Как узнать что ошибка программы или же ошибка в программном коде Vasis Delphi 0 01.07.2004 16:09
Ошибка в программном коде Windows Anonymous Вопросы начинающих программистов 1 17.05.2004 02:22
Ошибка в коде как исправить Anonymous Java 7 08.09.2003 13:09
CMyClass ошибка в коде как найти Влад Visual C++ 1 03.12.2002 17:31



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов