📄 mineview.cpp
字号:
// MineView.cpp : implementation of the CHelloView class
//
#include "stdafx.h"
#include "Mine.h"
#include "MineDoc.h"
#include "MineView.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CHelloView
IMPLEMENT_DYNCREATE(CHelloView, CView)
BEGIN_MESSAGE_MAP(CHelloView, CView)
//{{AFX_MSG_MAP(CHelloView)
ON_COMMAND(ID_BLACK, OnBlack)
ON_UPDATE_COMMAND_UI(ID_BLACK, OnUpdateBlack)
ON_COMMAND(ID_BLUE, OnBlue)
ON_UPDATE_COMMAND_UI(ID_BLUE, OnUpdateBlue)
ON_COMMAND(ID_CUSTOM, OnCustom)
ON_UPDATE_COMMAND_UI(ID_CUSTOM, OnUpdateCustom)
ON_COMMAND(ID_GREEN, OnGreen)
ON_UPDATE_COMMAND_UI(ID_GREEN, OnUpdateGreen)
ON_COMMAND(ID_RED, OnRed)
ON_UPDATE_COMMAND_UI(ID_RED, OnUpdateRed)
ON_COMMAND(ID_WHITE, OnWhite)
ON_UPDATE_COMMAND_UI(ID_WHITE, OnUpdateWhite)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CHelloView construction/destruction
CHelloView::CHelloView()
{
// TODO: add construction code here
}
CHelloView::~CHelloView()
{
}
BOOL CHelloView::PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: Modify the Window class or styles here by modifying
// the CREATESTRUCT cs
return CView::PreCreateWindow(cs);
}
/////////////////////////////////////////////////////////////////////////////
// CHelloView drawing
void CHelloView::OnDraw(CDC* pDC)
{
int x,y,z;
CHelloDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (pDoc->m_bWhite == 1)
{ x = 255; y = 255; z = 255; }
else if (pDoc->m_bBlack == 1)
{ x = 0 ; y = 0 ; z = 0 ; }
else
{
if (pDoc->m_bRed == 1)
x = 255;
else
x = 0 ;
if (pDoc->m_bGreen == 1)
y = 255;
else
y = 0;
if (pDoc->m_bBlue == 1)
z = 255;
else
z = 0;
}
if ( pDoc->m_bCustom == 0) pDoc->col = RGB(x,y,z);
CRect rectClient;
GetClientRect(rectClient);
CSize sizeClient = rectClient.Size();
CString str = pDoc->m_str ;
CSize sizeTextExtent = pDC->GetTextExtent(str);
pDC->SetTextColor(pDoc->col);
pDC->TextOut((sizeClient.cx-sizeTextExtent.cx)/2,(sizeClient.cy-sizeTextExtent.cy)/2,str);
// TODO: add draw code for native data here
}
/////////////////////////////////////////////////////////////////////////////
// CHelloView diagnostics
#ifdef _DEBUG
void CHelloView::AssertValid() const
{
CView::AssertValid();
}
void CHelloView::Dump(CDumpContext& dc) const
{
CView::Dump(dc);
}
CHelloDoc* CHelloView::GetDocument() // non-debug version is inline
{
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CHelloDoc)));
return (CHelloDoc*)m_pDocument;
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CHelloView message handlers
void CHelloView::OnBlack()
{
// TODO: Add your command handler code here
CHelloDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
BOOL x = pDoc->m_bBlack;
if ( x == 0 )
{
pDoc->m_bWhite = 0;
pDoc->m_bBlack = 1;
}
pDoc->m_bBlue = 0;
pDoc->m_bGreen = 0;
pDoc->m_bRed = 0;
pDoc->m_bCustom = 0;
Invalidate();
}
void CHelloView::OnUpdateBlack(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
CHelloDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (pDoc->m_bBlack == 1)
pCmdUI->SetCheck(1);
else
pCmdUI->SetCheck(0);
}
void CHelloView::OnBlue()
{
// TODO: Add your command handler code here
CHelloDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
pDoc->m_bBlue = !pDoc->m_bBlue ;
pDoc->m_bCustom = 0;
MixColors();
Invalidate();
}
void CHelloView::OnUpdateBlue(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
CHelloDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (pDoc->m_bBlue == 1)
pCmdUI->SetCheck(1);
else
pCmdUI->SetCheck(0);
}
void CHelloView::OnCustom()
{
// TODO: Add your command handler code here
CHelloDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
CColorDialog color(pDoc->col);
if (color.DoModal()==IDOK)
{
pDoc->col = color.GetColor();
pDoc->m_bCustom = 1;
pDoc->m_bBlue = 0;
pDoc->m_bGreen = 0;
pDoc->m_bRed = 0;
pDoc->m_bWhite = 0;
pDoc->m_bBlack = 0;
}
Invalidate();
}
void CHelloView::OnUpdateCustom(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
CHelloDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (pDoc->m_bCustom == 1)
pCmdUI->SetCheck(1);
else
pCmdUI->SetCheck(0);
}
void CHelloView::OnGreen()
{
// TODO: Add your command handler code here
CHelloDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
pDoc->m_bGreen = !pDoc->m_bGreen;
pDoc->m_bCustom = 0;
MixColors();
Invalidate();
}
void CHelloView::OnUpdateGreen(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
CHelloDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (pDoc->m_bGreen == 1)
pCmdUI->SetCheck(1);
else
pCmdUI->SetCheck(0);
}
void CHelloView::OnRed()
{
// TODO: Add your command handler code here
CHelloDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
pDoc->m_bRed = !pDoc->m_bRed;
pDoc->m_bCustom = 0;
MixColors();
Invalidate();
}
void CHelloView::OnUpdateRed(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
CHelloDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (pDoc->m_bRed == 1)
pCmdUI->SetCheck(1);
else
pCmdUI->SetCheck(0);
}
void CHelloView::OnWhite()
{
CHelloDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
BOOL x ;
x= pDoc->m_bWhite ;
if( x == 0)
{
pDoc->m_bWhite = 1 ;
pDoc->m_bBlack = 0;
}
pDoc->m_bBlue = 0;
pDoc->m_bGreen = 0;
pDoc->m_bRed = 0;
pDoc->m_bCustom = 0;
Invalidate();
}
void CHelloView::OnUpdateWhite(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
CHelloDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (pDoc->m_bWhite == 1)
pCmdUI->SetCheck(1);
else
pCmdUI->SetCheck(0);
}
void CHelloView::MixColors()
{
CHelloDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (pDoc->m_bBlue ==1 && pDoc->m_bGreen ==1 && pDoc->m_bRed == 1)
{
pDoc->m_bBlack = 0;
pDoc->m_bWhite = 1;
}
else if (pDoc->m_bBlue ==0 && pDoc->m_bGreen ==0 && pDoc->m_bRed == 0)
{
pDoc->m_bBlack = 1;
pDoc->m_bWhite = 0;
}
else
{
pDoc->m_bBlack = 0;
pDoc->m_bWhite = 0;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -