www.pudn.com > C_modem16.zip > ZSTABAR.CPP


#include "stdafx.h" 
#include "modem.h" 
#include "modem16.h" 
#include "zstabar.h" 
#include "mainfrm.h" 
#include "modemdoc.h" 
#include "modemvw.h" 
///////////////////////////////////////////////////////////////////////////// 
// ZStatusBar 
 
 
 
BEGIN_MESSAGE_MAP(ZStatusBar,CStatusBar) 
	//{{AFX_MSG_MAP(ZStatusBar) 
	ON_WM_PAINT() 
	ON_WM_CREATE() 
	ON_WM_TIMER() 
	//}}AFX_MSG_MAP 
END_MESSAGE_MAP() 
 
///////////////////////////////////////////////////////////////////////////// 
// ZStatusBar message handlers 
 
ZStatusBar::ZStatusBar() 
{ 
	CStatusBar::CStatusBar(); 
	Image.LoadBitmap(IDB_INDICATOR);  
	ImageLight.LoadBitmap(IDB_LIGHT);  
	ImageDark.LoadBitmap(IDB_DARK); 
} 
 
ZStatusBar::~ZStatusBar() 
{ 
	KillTimer(1); 
} 
 
void ZStatusBar::OnPaint() 
{ 
    RECT Rect; 
    CMainFrame *p; 
    p=(CMainFrame *)GetParentFrame(); 
    CModem16View *v; 
    v=(CModem16View *)p->GetActiveView(); 
	CStatusBar::OnPaint(); 
	if(!v->Modem.IfCom) return; 
	CClientDC PDC(this); 
	CDC MemDC1,MemDC2,MemDC3; 
	MemDC1.CreateCompatibleDC(&PDC); 
	MemDC1.SelectObject(&Image); 
	MemDC2.CreateCompatibleDC(&PDC); 
	MemDC2.SelectObject(&ImageLight); 
	MemDC3.CreateCompatibleDC(&PDC); 
	MemDC3.SelectObject(&ImageDark); 
	MemDC1.BitBlt(35,3,10,10,(v->Modem.DetectRx())?&MemDC2:&MemDC3,0,0,SRCCOPY); 
	MemDC1.BitBlt(71,3,10,10,(v->Modem.DetectTx())?&MemDC2:&MemDC3,0,0,SRCCOPY); 
	MemDC1.BitBlt(109,3,10,10,(v->Modem.DetectDcd())?&MemDC2:&MemDC3,0,0,SRCCOPY); 
	MemDC1.BitBlt(155,3,10,10,(v->Modem.DetectCts())?&MemDC2:&MemDC3,0,0,SRCCOPY); 
 
	GetItemRect(1,&Rect); 
	PDC.BitBlt(Rect.left+3,Rect.top+2,182,16,&MemDC1,0,0,SRCCOPY); 
	 
	// TODO: Add your message handler code here 
	 
	// Do not call CWnd::OnPaint() for painting messages 
} 
 
int ZStatusBar::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{ 
	if (CStatusBar::OnCreate(lpCreateStruct) == -1) 
		return -1; 
	 
	// TODO: Add your specialized creation code here 
	SetTimer(1,100,NULL); 
	 
	 
	return 0; 
} 
 
void ZStatusBar::OnTimer(UINT nIDEvent) 
{ 
	// TODO: Add your message handler code here and/or call default 
	SendMessage(WM_PAINT); 
	CStatusBar::OnTimer(nIDEvent); 
}