Brief Full Advanced Search Search Tips
|  |  | To access the contents, click the chapter and section titles. Fast Track Visual C++ 6.0 Programming (Publisher: John Wiley & Sons, Inc.) Author(s): Steve Holzner ISBN: 0471312908 Publication Date: 09/01/98 Search this book:
Previous | Table of Contents | Next
Listing 12.4 ServerView.h and ServerView.cpp
    // ServerView.h : interface of the CServerView class
    //
    /////////////////////////////////////////////////////////////////////////////

    #if
    !defined(AFX_SERVERVIEW_H__EA3CE62A_A95C_11D1_887F_D42B07C10710__INCLUDED_)
    #define AFX_SERVERVIEW_H__EA3CE62A_A95C_11D1_887F_D42B07C10710__INCLUDED_

    #if _MSC_VER > 1000
    #pragma once
    #endif // _MSC_VER > 1000

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

    // Attributes
    public:
        CServerDoc* GetDocument();

    // Operations
    public:

    // Overrides
        // ClassWizard generated virtual function overrides
        //{{AFX_VIRTUAL(CServerView)
        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);
        //}}AFX_VIRTUAL

    // Implementation
    public:
        virtual ~CServerView();
    #ifdef _DEBUG
        virtual void AssertValid() const;
        virtual void Dump(CDumpContext& dc) const;
    #endif

    protected:

    // Generated message map functions
    protected:
        //{{AFX_MSG(CServerView)
        afx_msg void OnCancelEditSrvr();
        afx_msg void OnEditInsertnewtext();
        //}}AFX_MSG
        DECLARE_MESSAGE_MAP()
    };

    #ifndef _DEBUG // debug version in ServerView.cpp
    inline CServerDoc* CServerView::GetDocument()
        { return (CServerDoc*)m_pDocument; }
    #endif

    /////////////////////////////////////////////////////////////////////////////

    //{{AFX_INSERT_LOCATION}}
    // Microsoft Visual C++ will insert additional declarations immediately before the previous line.

    #endif //
    !defined(AFX_SERVERVIEW_H__EA3CE62A_A95C_11D1_887F_D42B07C10710__INCLUDED_)

    // ServerView.cpp : implementation of the CServerView class
    //

    #include “stdafx.h”
    #include “Server.h”

    #include “ServerDoc.h”
    #include “ServerView.h”

    #ifdef _DEBUG
    #define new DEBUG_NEW
    #undef THIS_FILE
    static char THIS_FILE[] = __FILE__;
    #endif

    /////////////////////////////////////////////////////////////////////////////
    // CServerView

    IMPLEMENT_DYNCREATE(CServerView, CView)

    BEGIN_MESSAGE_MAP(CServerView, CView)
        //{{AFX_MSG_MAP(CServerView)
        ON_COMMAND(ID_CANCEL_EDIT_SRVR, OnCancelEditSrvr)
        ON_COMMAND(ID_EDIT_INSERTNEWTEXT, OnEditInsertnewtext)
        //}}AFX_MSG_MAP
        // 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()

    /////////////////////////////////////////////////////////////////////////////
    // CServerView construction/destruction

    CServerView::CServerView()
    {
        // TODO: add construction code here

    }

    CServerView::~CServerView()

    {
    }

    BOOL CServerView::PreCreateWindow(CREATESTRUCT& cs)
    {
        // TODO: Modify the Window class or styles here by modifying
        // the CREATESTRUCT cs

        return CView::PreCreateWindow(cs);
    }

    /////////////////////////////////////////////////////////////////////////////
    // CServerView drawing

    void CServerView::OnDraw(CDC* pDC)
    {
        CServerDoc* pDoc = GetDocument();
        ASSERT_VALID(pDoc);

        pDC->TextOut(0, 0, pDoc->text);
        // TODO: add draw code for native data here
    }

    /////////////////////////////////////////////////////////////////////////////
    // CServerView printing

    BOOL CServerView::OnPreparePrinting(CPrintInfo* pInfo)
    {
        // default preparation
        return DoPreparePrinting(pInfo);
    }

    void CServerView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
    {
        // TODO: add extra initialization before printing
    }

    void CServerView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
    {
        // TODO: add cleanup after printing
    }

    /////////////////////////////////////////////////////////////////////////////
    // OLE Server support

    // The following command handler provides the standard keyboard
    // user interface to cancel an in-place editing session. Here,
    // the server (not the container) causes the deactivation.
    void CServerView::OnCancelEditSrvr()
    {
        GetDocument()->OnDeactivateUI(FALSE);
    }

    /////////////////////////////////////////////////////////////////////////////
    // CServerView diagnostics

    #ifdef _DEBUG
    void CServerView::AssertValid() const
    {
        CView::AssertValid();
    }

    void CServerView::Dump(CDumpContext& dc) const
    {
        CView::Dump(dc);
    }

    CServerDoc* CServerView::GetDocument() // non-debug version is inline
    {
        ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CServerDoc)));
        return (CServerDoc*)m_pDocument;
    }
    #endif //_DEBUG

    /////////////////////////////////////////////////////////////////////////////
    // CServerView message handlers

    void CServerView::OnEditInsertnewtext()
    {
        // TODO: Add your command handler code here

        CServerDoc* pDoc = GetDocument();
        ASSERT_VALID(pDoc);

        pDoc->text = “The new text...”;

        pDoc->NotifyChanged();
        pDoc->SetModifiedFlag();

    }
### What’s Ahead In the next chapter, we continue with another very popular aspect of COM programming: creating and using ActiveX controls. We learn how to create ActiveX controls, as well as how to support methods, properties, and events in those controls. Furthermore, we see how to embed those controls in other programs.
Previous | Table of Contents | Next

| Products | Contact Us | About Us | Privacy | Ad Info | Home Use of this site is subject to certain Terms & Conditions, Copyright © 1996-2000 EarthWeb Inc. All rights reserved. Reproduction whole or in part in any form or medium without express written permission of EarthWeb is prohibited. Read EarthWeb's privacy statement.