Register for EarthWeb's Million Dollar Sweepstakes!
home account info subscribe login search My ITKnowledge FAQ/help site map contact us


 
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

Bookmark It

Search this book:
 
Previous Table of Contents Next



Listing 3.1 HTMLViewView.h and HTMLViewView.cpp

// HTMLViewView.h : interface of the CHTMLViewView class
//
/////////////////////////////////////////////////////////////////////////////

#if 
!defined(AFX_HTMLVIEWVIEW_H__093DDFC9_9FB2_11D1_887F_D42B07C10710__INCLUDED_)
#define AFX_HTMLVIEWVIEW_H__093DDFC9_9FB2_11D1_887F_D42B07C10710__INCLUDED_

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

class CHTMLViewView : public CHtmlView
{
protected: // create from serialization only
    CHTMLViewView();
    DECLARE_DYNCREATE(CHTMLViewView)

// Attributes
public:
    CHTMLViewDoc* GetDocument();

// Operations
public:

// Overrides
    // ClassWizard generated virtual function overrides
    //{{AFX_VIRTUAL(CHTMLViewView)
    public:
    virtual void OnDraw(CDC* pDC);  // overridden to draw this view
    virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
    protected:
    virtual void OnInitialUpdate(); // called first time after construct
    virtual BOOL OnPreparePrinting(CPrintInfo* pInfo);
    virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo);
    virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo);


   //}}AFX_VIRTUAL

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

protected:

// Generated message map functions
protected:
    //{{AFX_MSG(CHTMLViewView)
    afx_msg void OnFileNavigate();
    //}}AFX_MSG
    DECLARE_MESSAGE_MAP()
};
#ifndef _DEBUG  // debug version in HTMLViewView.cpp
inline CHTMLViewDoc* CHTMLViewView::GetDocument()
   { return (CHTMLViewDoc*)m_pDocument; }
#endif

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

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

#endif // !defined(AFX_HTMLVIEWVIEW_H__093DDFC9_9FB2_11D1_887F_D42B07C10710__INCLUDED_)


// HTMLViewView.cpp : implementation of the CHTMLViewView class
//

#include “stdafx.h”
#include “HTMLView.h”

#include “HTMLViewDoc.h”
#include “HTMLViewView.h”
#include “URLDlg.h”

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


/////////////////////////////////////////////////////////////////////////////
// CHTMLViewView

IMPLEMENT_DYNCREATE(CHTMLViewView, CHtmlView)

BEGIN_MESSAGE_MAP(CHTMLViewView, CHtmlView)
    //{{AFX_MSG_MAP(CHTMLViewView)
    ON_COMMAND(ID_FILE_NAVIGATE, OnFileNavigate)
    //}}AFX_MSG_MAP
    // Standard printing commands
    ON_COMMAND(ID_FILE_PRINT, CHtmlView::OnFilePrint)
    ON_COMMAND(ID_FILE_PRINT_DIRECT, CHtmlView::OnFilePrint)
    ON_COMMAND(ID_FILE_PRINT_PREVIEW, CHtmlView::OnFilePrintPreview)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CHTMLViewView construction/destruction

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

}

CHTMLViewView::~CHTMLViewView()
{
}

BOOL CHTMLViewView::PreCreateWindow(CREATESTRUCT& cs)
{


   // TODO: Modify the Window class or styles here by modifying
    //  the CREATESTRUCT cs

    return CHtmlView::PreCreateWindow(cs);
}

/////////////////////////////////////////////////////////////////////////////
// CHTMLViewView drawing

void CHTMLViewView::OnDraw(CDC* pDC)
{
    CHTMLViewDoc* pDoc = GetDocument();
    ASSERT_VALID(pDoc);

    // TODO: add draw code for native data here
}

void CHTMLViewView::OnInitialUpdate()
{
    CHtmlView::OnInitialUpdate();

    // TODO: This code navigates to a popular spot on the Web.
    //  change the code to go where you’d like.
    Navigate2(_T(“http://www.microsoft.com/visualc/”),NULL,NULL);
}

/////////////////////////////////////////////////////////////////////////////
// CHTMLViewView printing

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

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

void CHTMLViewView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)


{
    // TODO: add cleanup after printing
}

/////////////////////////////////////////////////////////////////////////////
// CHTMLViewView diagnostics

#ifdef _DEBUG
void CHTMLViewView::AssertValid() const
{
    CHtmlView::AssertValid();
}

void CHTMLViewView::Dump(CDumpContext& dc) const
{
    CHtmlView::Dump(dc);
}

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

/////////////////////////////////////////////////////////////////////////////
// CHTMLViewView message handlers

void CHTMLViewView::OnFileNavigate()
{
    URLDlg urldlg;

    int dlgvalue = urldlg.DoModal();

    if(dlgvalue == IDOK){
        Navigate(urldlg.m_URL);
    }

    // TODO: Add your command handler code here
}

That completes our work with HTML views. Let’s move on to tree views.

Tree Views

Tree views are based on tree controls, which let you list items in trees consisting of expandable nodes. If you’ve used the Windows Explorer, you’re familiar with trees, because the Explorer uses trees to present the directory structure of a disk: as folders that contain other folders and files. You can collapse or expand folders with a click of the mouse.

We can put tree views to use by creating a new program that supports them. Our program will support expandable nodes, bitmapped items, and will tell you what item in the tree you’ve clicked.

Create a new MDI program named TreeView. In Step 6 of the AppWizard, select CTreeView as the base class for our view class. We add items to the tree view—a process called populating—in the OnInitialUpdate() function. Add that function to the view class now. Note the comment from the Visual C++ framework providing us with a tip here:

void CTreeViewView::OnInitialUpdate()
{
    CTreeView::OnInitialUpdate();

    // TODO: You may populate your TreeView with items by directly accessing
    //  its tree control through a call to GetTreeCtrl().
}

The CTreeCtrl class functions appear in Table 3.3.


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.