📄 flickerview.cpp
字号:
// FlickerView.cpp : implementation of the CFlickerView class
//
#include "stdafx.h"
#include "Flicker.h"
#include "FlickerDoc.h"
#include "FlickerView.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CFlickerView
IMPLEMENT_DYNCREATE(CFlickerView, CView)
BEGIN_MESSAGE_MAP(CFlickerView, CView)
//{{AFX_MSG_MAP(CFlickerView)
ON_WM_CREATE()
ON_WM_TIMER()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CFlickerView construction/destruction
CFlickerView::CFlickerView()
{
}
CFlickerView::~CFlickerView()
{
}
BOOL CFlickerView::PreCreateWindow(CREATESTRUCT& cs)
{
return CView::PreCreateWindow(cs);
}
/////////////////////////////////////////////////////////////////////////////
// CFlickerView drawing
void CFlickerView::OnDraw(CDC* pDC)
{
CFlickerDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
RECT Rect;
GetClientRect( &Rect );
static BOOL bColor = FALSE;
#define ALLOW_FLICKER
#ifdef ALLOW_FLICKER
if( bColor )
pDC->SelectStockObject( WHITE_PEN );
else
pDC->SelectStockObject( BLACK_PEN );
bColor = !bColor;
for( int i=0; i<Rect.right; i++ ){
pDC->MoveTo( i, 0 );
pDC->LineTo( i, Rect.bottom );
}
#else
CDC MemDC;
MemDC.CreateCompatibleDC( pDC );
CBitmap MemBitmap;
MemBitmap.CreateCompatibleBitmap( pDC,
Rect.right, Rect.bottom );
CBitmap *pOldBitmap = MemDC.SelectObject( &MemBitmap );
if( bColor )
MemDC.SelectStockObject( WHITE_PEN );
else
MemDC.SelectStockObject( BLACK_PEN );
bColor = !bColor;
for( int i=0; i<Rect.right; i++ ){
MemDC.MoveTo( i, 0 );
MemDC.LineTo( i, Rect.bottom );
}
pDC->BitBlt( 0, 0, Rect.right, Rect.bottom,
&MemDC, 0, 0, SRCCOPY );
MemDC.SelectObject( pOldBitmap );
#endif
}
/////////////////////////////////////////////////////////////////////////////
// CFlickerView diagnostics
#ifdef _DEBUG
void CFlickerView::AssertValid() const
{
CView::AssertValid();
}
void CFlickerView::Dump(CDumpContext& dc) const
{
CView::Dump(dc);
}
CFlickerDoc* CFlickerView::GetDocument() // non-debug version is inline
{
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CFlickerDoc)));
return (CFlickerDoc*)m_pDocument;
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CFlickerView message handlers
int CFlickerView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CView::OnCreate(lpCreateStruct) == -1)
return -1;
SetTimer( 1, 1000, NULL );
return 0;
}
void CFlickerView::OnTimer(UINT nIDEvent)
{
InvalidateRect( NULL, FALSE );
UpdateWindow();
CView::OnTimer(nIDEvent);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -