www.pudn.com > vc++6.0screen.rar > ScreenWnd.cpp


// ScreenWnd.cpp : implementation file 
// 
 
#include "stdafx.h" 
#include "Screen.h" 
#include "ScreenWnd.h" 
 
#ifdef _DEBUG 
#define new DEBUG_NEW 
#undef THIS_FILE 
static char THIS_FILE[] = __FILE__; 
#endif 
 
///////////////////////////////////////////////////////////////////////////// 
// CScreenWnd 
 
CScreenWnd::CScreenWnd() 
{ 
	m_prePoint=CPoint(-1, -1); 
} 
 
CScreenWnd::~CScreenWnd() 
{ 
} 
	LPCSTR CScreenWnd::lpszClassName=NULL; 
 
 
BEGIN_MESSAGE_MAP(CScreenWnd, CWnd) 
	//{{AFX_MSG_MAP(CScreenWnd) 
	ON_WM_KEYDOWN() 
	ON_WM_LBUTTONDOWN() 
	ON_WM_RBUTTONDOWN() 
	ON_WM_SYSKEYDOWN() 
	ON_WM_ACTIVATE() 
	ON_WM_ACTIVATEAPP() 
	ON_WM_MOUSEMOVE() 
	ON_WM_PAINT() 
	ON_WM_TIMER() 
	ON_WM_DESTROY() 
	//}}AFX_MSG_MAP 
END_MESSAGE_MAP() 
 
 
///////////////////////////////////////////////////////////////////////////// 
// CScreenWnd message handlers 
void CScreenWnd::DrawBitmap(CDC &dc, int nIndexBit) 
{ 
	CDC dcmem; 
	dcmem.CreateCompatibleDC(&dc); 
	CBitmap m_Bitmap; 
	m_Bitmap.LoadBitmap(IDB_BITMAP1+nIndexBit); 
	dcmem.SelectObject(m_Bitmap); 
	dc.BitBlt(0,0,840,680,&dcmem,0,0,SRCCOPY); 
} 
void CScreenWnd::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)  
{ 
	// TODO: Add your message handler code here and/or call default 
	PostMessage(WM_CLOSE); 
	 
	CWnd::OnKeyDown(nChar, nRepCnt, nFlags); 
} 
 
void CScreenWnd::OnLButtonDown(UINT nFlags, CPoint point)  
{ 
	// TODO: Add your message handler code here and/or call default 
	PostMessage(WM_CLOSE); 
	 
	CWnd::OnLButtonDown(nFlags, point); 
} 
 
void CScreenWnd::OnRButtonDown(UINT nFlags, CPoint point)  
{ 
	// TODO: Add your message handler code here and/or call default 
	PostMessage(WM_CLOSE); 
	 
	CWnd::OnRButtonDown(nFlags, point); 
} 
 
void CScreenWnd::OnSysKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)  
{ 
	// TODO: Add your message handler code here and/or call default 
	PostMessage(WM_CLOSE); 
	 
	CWnd::OnSysKeyDown(nChar, nRepCnt, nFlags); 
} 
 
void CScreenWnd::OnActivate(UINT nState, CWnd* pWndOther, BOOL bMinimized)  
{ 
	CWnd::OnActivate(nState, pWndOther, bMinimized); 
	if (nState==WA_INACTIVE) 
		PostMessage(WM_CLOSE);	 
	// TODO: Add your message handler code here 
} 
 
void CScreenWnd::OnActivateApp(BOOL bActive, HTASK hTask)  
{ 
	CWnd::OnActivateApp(bActive, hTask); 
	 
	// TODO: Add your message handler code here 
	if(!bActive) //is being deactivated 
		PostMessage(WM_CLOSE); 
	 
} 
 
void CScreenWnd::OnMouseMove(UINT nFlags, CPoint point)  
{ 
	// TODO: Add your message handler code here and/or call default 
	if(m_prePoint == CPoint(-1,-1)) 
		m_prePoint = point; 
	else if(m_prePoint!=point) 
		PostMessage(WM_CLOSE);  
	 
	CWnd::OnMouseMove(nFlags, point); 
} 
 
void CScreenWnd::OnPaint()  
{ 
	CPaintDC dc(this); // device context for painting 
	 
	// TODO: Add your message handler code here 
	CBrush brush(RGB(0,0,0)); 
	CRect rect; 
	GetClientRect(rect); 
	dc.FillRect(&rect,&brush); 
 
	// Do not call CWnd::OnPaint() for painting messages 
} 
 
void CScreenWnd::OnTimer(UINT nIDEvent)  
{ 
	// TODO: Add your message handler code here and/or call default 
	CClientDC dc(this); 
	static nIndexBit=0; 
	if(nIndexBit>=5) 
		nIndexBit=0; 
	DrawBitmap(dc, nIndexBit++);	 
	CWnd::OnTimer(nIDEvent); 
} 
 
void CScreenWnd::OnDestroy()  
{ 
	CWnd::OnDestroy(); 
	 
	// TODO: Add your message handler code here 
	KillTimer(m_timer); 
	 
} 
BOOL CScreenWnd::Create() 
{ 
	 
	if(lpszClassName==NULL) 
  		{ 
		lpszClassName=AfxRegisterWndClass(CS_HREDRAW|CS_VREDRAW, ::LoadCursor(AfxGetResourceHandle(),MAKEINTRESOURCE(IDC_NOCURSOR))); 
		//注册类;IDC_NOCURSOR为新建光标的ID,这个光标没有任何图案 
	} 
	CRect rect(0, 0, ::GetSystemMetrics(SM_CXSCREEN), 
		::GetSystemMetrics(SM_CYSCREEN)); 
	CreateEx(WS_EX_TOPMOST, lpszClassName, _T(""), WS_VISIBLE|WS_POPUP,  
		rect.left, rect.top, rect.right-rect.left, rect.bottom-rect.top, GetSafeHwnd(), NULL, NULL); //创建一个全屏窗口 
	m_timer=SetTimer(1, 1000, NULL);//计时器,ID_TIMER别忘了定义 
	return TRUE; 
	 
}