www.gusucode.com > VC++网格控件CGridCtrl演示程源代码-源码程序 > VC++网格控件CGridCtrl演示程源代码-源码程序\code\OwnWnd.cpp

    // OwnWnd.cpp : implementation file
// Download by http://www.NewXing.com

#include "stdafx.h"
#include "主控报表.h"
#include "OwnWnd.h"

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

/////////////////////////////////////////////////////////////////////////////
// COwnWnd

IMPLEMENT_DYNCREATE(COwnWnd, CView)

COwnWnd::COwnWnd()
{
	RegistryWindow();
}

COwnWnd::~COwnWnd()
{
	
}


BEGIN_MESSAGE_MAP(COwnWnd, CView)
	//{{AFX_MSG_MAP(COwnWnd)
	ON_WM_SIZE()
	ON_WM_CREATE()
	ON_WM_PAINT()
	ON_WM_ERASEBKGND()
	ON_WM_TIMER()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// COwnWnd drawing

void COwnWnd::OnDraw(CDC* pDC)
{
	CDocument* pDoc = GetDocument();
	// TODO: add draw code here
	m_hzgl.Render();
	
}

/////////////////////////////////////////////////////////////////////////////
// COwnWnd diagnostics

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

void COwnWnd::Dump(CDumpContext& dc) const
{
	CView::Dump(dc);
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// COwnWnd message handlers

void COwnWnd::OnSize(UINT nType, int cx, int cy) 
{
	CView::OnSize(nType, cx, cy);
	
	// TODO: Add your message handler code here
	m_hzgl.OnResize(cx,cy);
	
}

int COwnWnd::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
	if (CView::OnCreate(lpCreateStruct) == -1)
		return -1;
	
	// TODO: Add your specialized creation code here
	BOOL Result=m_hzgl.Create(this);
	if(Result)
	   {
		SetTimer(100,100,NULL);
		return 0;
	}
	else 
		return -1;
}

BOOL COwnWnd::RegistryWindow()
{

	
    WNDCLASS wndcls;
    HINSTANCE hInst = AfxGetInstanceHandle();
   // HINSTANCE hInst = AfxGetResourceHandle(); 

    if (!(::GetClassInfo(hInst,"ownWndClass" , &wndcls)))
    {
        // otherwise we need to register a new class
        wndcls.style            = CS_DBLCLKS | CS_HREDRAW | CS_VREDRAW;
        wndcls.lpfnWndProc      = ::DefWindowProc;
        wndcls.cbClsExtra       = wndcls.cbWndExtra = 0;
        wndcls.hInstance        = hInst;
        wndcls.hIcon            = NULL;
        wndcls.hCursor          = AfxGetApp()->LoadStandardCursor(IDC_ARROW);
        wndcls.hbrBackground    = (HBRUSH) (COLOR_3DFACE + 1);
        wndcls.lpszMenuName     = NULL;
        wndcls.lpszClassName    = "ownWndClass";

        if (!AfxRegisterClass(&wndcls)) {
            AfxThrowResourceException();
            return FALSE;
        }
    }

    return TRUE;


}

void COwnWnd::OnPaint() 
{
	CPaintDC dc(this); // device context for painting
	
	// TODO: Add your message handler code here
	
	OnDraw(&dc);
	// Do not call CView::OnPaint() for painting messages
}

BOOL COwnWnd::OnEraseBkgnd(CDC* pDC) 
{
	// TODO: Add your message handler code here and/or call default
	return TRUE;
	//return CView::OnEraseBkgnd(pDC);
}

BOOL COwnWnd::Create(const RECT &rect, CWnd *parent, UINT nID, DWORD dwStyle)
{

	ASSERT(parent->GetSafeHwnd());

    if (!CWnd::Create("ownWndClass", NULL, dwStyle, rect, parent, nID)) 
        return FALSE;//

	return TRUE;

}

void COwnWnd::OnTimer(UINT nIDEvent) 
{
	// TODO: Add your message handler code here and/or call default
	Invalidate();
	//CView::OnTimer(nIDEvent);
}

void COwnWnd::PostNcDestroy() 
{
	// TODO: Add your specialized code here and/or call the base class

	CView::PostNcDestroy();
}

BOOL COwnWnd::DestroyWindow() 
{
	// TODO: Add your specialized code here and/or call the base class
		KillTimer(100);
	return CView::DestroyWindow();
}