ON_WM_SIZE()
ON_WM_CREATE()
ON_WM_TIMER()
ON_WM_KEYDOWN()
ON_WM_DESTROY()
ON_COMMAND(ID_OPTION_LEVEL1, OnOptionLevel1)
ON_COMMAND(ID_OPTION_LEVEL2, OnOptionLevel2)
ON_COMMAND(ID_OPTION_LEVEL3, OnOptionLevel3)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
//////////////sag///////////////////////////////////////////////////////////////
// CWndMain mese handlers
BOOL CWndMain::OnEraseBkgnd(CDC* pDC)
{
// CRect rc;
// GetClientRect(rc);
// pDC->FillSolidRect(rc, RGB(192, 192, 192));
return CWnd::OnEraseBkgnd(pDC);
}
int CWndMain::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CWnd::OnCreate(lpCreateStruct) == -1)
return -1;
memset(&m_lf, 0, sizeof(m_lf));
m_lf.lfHeight = 18;
m_lf.lfWidth = 9;
m_lf.lfEscapement = 0;
m_lf.lfOrientation = 0;
m_lf.lfWeight = FW_NORMAL;
m_lf.lfItalic = FALSE;
m_lf.lfUnderline = FALSE;
m_lf.lfStrikeOut = FALSE;
m_lf.lfCharSet = GB2312_CHARSET;
m_lf.lfOutPrecision = OUT_DEFAULT_PRECIS;
m_lf.lfClipPrecision = CLIP_DEFAULT_PRECIS;
m_lf.lfQuality = DEFAULT_QUALITY;
m_lf.lfPitchAndFamily = DEFAULT_PITCH | FF_ROMAN;
strncpy(m_lf.lfFaceName, "宋体", LF_FACESIZE - 1);
m_lf.lfFaceName[LF_FACESIZE - 1] = 0;
return 0;
}
void CWndMain::OnDestroy()
{
if (m_bitmap.m_hObject)
{
m_bitmap.DeleteObject();
}
CWnd::OnDestroy();
}
void CWndMain::OnPaint()
{
CPaintDC dc(this); // device context for painting
DrawLine(&dc);
DrawSquBmp(&dc);
// Do not call CWnd::OnPaint() for painting messages
}
void CWndMain::OnSize(UINT nType, int cx, int cy)
{
CWnd::OnSize(nType, cx, cy);
}
void CWndMain::DrawLine(CDC* pDC)
{
int i, j;
CRect rc;
GetClientRect(rc);
return;
//如位图不够大,则重新申请
if (m_bitmap.m_hObject)
{
BITMAP info;
m_bitmap.GetBitmap(&info);
//释放原来的小位图
if (info.bmWidth
m_bitmap.DeleteObject();
}
}
//创建位图
if (m_bitmap.m_hObject == NULL)
{
m_bitmap.CreateCompatibleBitmap(pDC, rc.Width(), rc.Height());
}
//如果还没有创建显示所用的字体,则创建
if (m_font.m_hObject == NULL)
{
m_font.CreateFontIndirect(&m_lf);
}
//双缓冲
CDC dcTemp;
dcTemp.CreateCompatibleDC(pDC);
//设置显示方式
CBitmap* pOldBitmap = dcTemp.SelectObject(&m_bitmap);
COLORREF oldColor = dcTemp.SetTextColor(RGB(0, 255, 255));
int nOldMode = dcTemp.SetBkMode(TRANSPARENT);
CFont *pOldFont = dcTemp.SelectObject(&m_font);
//填充背景图为黑色
dcTemp.FillRect(rc, &CBrush(BLACK));
CRect rcLine;
rcLine.CopyRect(rc);
// CPen penGrid(PS_SOLID, 1, PINK);
// CPen* pOldGrid = dcTemp.SelectObject(&penGrid);
//画笔类型
penGrid = new CPen(PS_SOLID, 1, PINK);
penSquare = new CPen(PS_SOLID, 1, YELLO);
//画刷类型
GridBrush = new CBrush(GREEN);
SquareBrush = new CBrush(BLUE);
dcTemp.SelectObject(GridBrush);
dcTemp.Rectangle(0, 0, 420, 600);
//网格线:设置为20行15列,行距为30
int dist = 30;
dcTemp.SelectObject(penGrid);
for (i=0; i<15; i++)
{
dcTemp.MoveTo(rc.left + i*dist, rc.top);
dcTemp.LineTo(rc.left + i*dist, rc.bottom);
// TRACE("网格线x=%d, 网格线y=%d\n", rc.left + i*dist, rc.top);
// TRACE("网格线x=%d, 网格线y=%d\n", rc.left + i*dist, rc.bottom);
}
for(j=0; j<20; j++)
{
dcTemp.MoveTo(rc.left, rc.top + j*dist);
dcTemp.LineTo(rc.right- 180 , rc.top + j*dist);
}
//画分数
CString str;
str.Format("总分为:%d分", m_Score);
if (m_Score>=0)
{
dcTemp.TextOut(450, 500, str);
}
pDC->BitBlt(rc.left, rc.top, rc.Width(), rc.Height(), &dcTemp, rc.left, rc.top, SRCCOPY);
dcTemp.SelectObject(pOldBitmap);
dcTemp.SelectObject(penGrid);
dcTemp.Sel