⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainfrm.cpp

📁 《Visual C++ Bible》或者说是《Visual C++ 宝典》的对应的源码文件
💻 CPP
字号:
// mainfrm.cpp : implementation of the DMainFrame class
//

#include "stdafx.h"
#include "echofill.h"

#include "mainfrm.h"

#ifdef _DEBUG
#undef THIS_FILE
static char BASED_CODE THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// DMainFrame

IMPLEMENT_DYNCREATE(DMainFrame, CFrameWnd)

BEGIN_MESSAGE_MAP(DMainFrame, CFrameWnd)
	//{{AFX_MSG_MAP(DMainFrame)
	ON_WM_PAINT()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// DMainFrame construction/destruction

DMainFrame::DMainFrame()
{
    ASSERT (MAX_COLORS == 8);  // Table fill assumes this many colors.

	crBackground[0] = g_crGray;
	crBackground[1] = g_crYellow;
	crBackground[2] = g_crRed;
	crBackground[3] = g_crBlue;
	crBackground[4] = g_crGreen;
	crBackground[5] = g_crWhite;
	crBackground[6] = g_crBlack;
	crBackground[7] = g_crCyan;

	iNextColor = 0;

	lpszClassName = _T("Afx:No:Redraw:Bits");
}

DMainFrame::~DMainFrame()
{
}

//-----------------------------------------------------------------------------
// PreCreateWindow -- Called before Windows API window is created.
BOOL DMainFrame::PreCreateWindow(CREATESTRUCT& cs) 
{
    // Register our own window class to avoid the default
	// class style of CS_HREDRAW | CS_VREDRAW;
	HICON hIcon = ::LoadIcon(AfxGetResourceHandle(),
	                         MAKEINTRESOURCE(IDR_MAINFRAME));
	HCURSOR hCursor = ::LoadCursor((HINSTANCE)0, IDC_ARROW);
	LPCTSTR lpszClassName =
	        AfxRegisterWndClass(0,                      // Class style.
	                            hCursor,                // Mouse cursor.
	                            (HBRUSH)COLOR_WINDOW+1, // Background color.
	                            hIcon);                 // Icon.

    // Pass class name on to creation code.
    cs.lpszClass = lpszClassName;
	return CFrameWnd::PreCreateWindow(cs);
}

/////////////////////////////////////////////////////////////////////////////
// DMainFrame diagnostics

#ifdef _DEBUG
void DMainFrame::AssertValid() const
{
	CFrameWnd::AssertValid();
}

void DMainFrame::Dump(CDumpContext& dc) const
{
	CFrameWnd::Dump(dc);
}

#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// DMainFrame message handlers

void DMainFrame::OnPaint() 
{
	CPaintDC dc(this); // device context for painting

    // Query size of window's client area.
    CRect rClient;
    GetClientRect(&rClient);

    // Select next color for background
	ASSERT(iNextColor >= 0 && iNextColor < MAX_COLORS);
    dc.SetBkColor(crBackground[iNextColor]);

    // Fill client area with background color.
    dc.ExtTextOut(0, 0, ETO_OPAQUE, &rClient, 0, 0, 0);

    // Increment color index and wrap to start of range.
	iNextColor++;
    if (iNextColor >= MAX_COLORS) iNextColor = 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -