www.pudn.com > Calculator12.rar > CNUM.cpp


// CNUM.cpp : implementation file 
// 
 
#include "stdafx.h" 
#include "Calculator.h" 
#include "CNUM.h" 
 
#ifdef _DEBUG 
#define new DEBUG_NEW 
#undef THIS_FILE 
static char THIS_FILE[] = __FILE__; 
#endif 
 
///////////////////////////////////////////////////////////////////////////// 
// CCNUM dialog 
 
 
CCNUM::CCNUM(CWnd* pParent /*=NULL*/) 
	: CDialog(CCNUM::IDD, pParent) 
{ 
	//{{AFX_DATA_INIT(CCNUM) 
		// NOTE: the ClassWizard will add member initialization here 
	//}}AFX_DATA_INIT 
} 
 
 
void CCNUM::DoDataExchange(CDataExchange* pDX) 
{ 
	CDialog::DoDataExchange(pDX); 
	//{{AFX_DATA_MAP(CCNUM) 
		// NOTE: the ClassWizard will add DDX and DDV calls here 
	//}}AFX_DATA_MAP 
} 
 
 
BEGIN_MESSAGE_MAP(CCNUM, CDialog) 
	//{{AFX_MSG_MAP(CCNUM) 
	ON_BN_CLICKED(IDC_BTN_1, OnBtn1) 
	ON_BN_CLICKED(IDC_BTN_2, OnBtn2) 
	ON_BN_CLICKED(IDC_BTN_7, OnBtn7) 
	ON_BN_CLICKED(IDC_BTN_9, OnBtn9) 
	ON_BN_CLICKED(IDC_BTN_3, OnBtn3) 
	ON_BN_CLICKED(IDC_BTN_4, OnBtn4) 
	ON_BN_CLICKED(IDC_BTN_5, OnBtn5) 
	ON_BN_CLICKED(IDC_BTN_6, OnBtn6) 
	ON_BN_CLICKED(IDC_BTN_0, OnBtn0) 
	ON_BN_CLICKED(IDC_BTN_DOT, OnBtnDot) 
	ON_BN_CLICKED(IDC_BTN_8, OnBtn8) 
	ON_BN_CLICKED(IDC_BTN_BIN, OnBtnBin) 
	ON_BN_CLICKED(IDC_BTN_OCT, OnBtnOct) 
	ON_BN_CLICKED(IDC_BTN_HEX, OnBtnHex) 
	ON_BN_CLICKED(IDC_BTN_SPACE, OnBtnSpace) 
	ON_BN_CLICKED(IDC_BTN_BACK, OnBtnBack) 
	ON_BN_CLICKED(IDC_BTN_A, OnBtnA) 
	ON_BN_CLICKED(IDC_BTN_B, OnBtnB) 
	ON_BN_CLICKED(IDC_BTN_C, OnBtnC) 
	ON_BN_CLICKED(IDC_BTN_D, OnBtnD) 
	ON_BN_CLICKED(IDC_BTN_E, OnBtnE) 
	ON_BN_CLICKED(IDC_BTN_F, OnBtnF) 
	ON_BN_CLICKED(IDC_BTN_PI, OnBtnPi) 
	ON_BN_CLICKED(IDC_BTN_EE, OnBtnEe) 
	ON_WM_SETCURSOR() 
	//}}AFX_MSG_MAP 
END_MESSAGE_MAP() 
 
///////////////////////////////////////////////////////////////////////////// 
// CCNUM message handlers 
 
BOOL CCNUM::OnInitDialog()  
{ 
	CDialog::OnInitDialog(); 
	 
	m_toolTip.Create( this ); 
	CStringArray straInfo; 
 
	straInfo.RemoveAll(); 
	straInfo.Add( "十六进制的A" ); 
	m_toolTip.AddControlInfo( IDC_BTN_A, straInfo, RGB(255,255,0) ); 
 
	straInfo.RemoveAll(); 
	straInfo.Add( "十六进制的B" ); 
	m_toolTip.AddControlInfo( IDC_BTN_B, straInfo, RGB(255,255,0) ); 
	 
	straInfo.RemoveAll(); 
	straInfo.Add( "十六进制的C" ); 
	m_toolTip.AddControlInfo( IDC_BTN_C, straInfo, RGB(255,255,0) ); 
 
	straInfo.RemoveAll(); 
	straInfo.Add( "十六进制的D" ); 
	m_toolTip.AddControlInfo( IDC_BTN_D, straInfo, RGB(255,255,0) ); 
 
	straInfo.RemoveAll(); 
	straInfo.Add( "十六进制的E" ); 
	m_toolTip.AddControlInfo( IDC_BTN_E, straInfo, RGB(255,255,0) ); 
 
	straInfo.RemoveAll(); 
	straInfo.Add( "十六进制的F" ); 
	m_toolTip.AddControlInfo( IDC_BTN_F, straInfo, RGB(255,255,0) ); 
 
	straInfo.RemoveAll(); 
	straInfo.Add( "二进制数的结束符" ); 
	m_toolTip.AddControlInfo( IDC_BTN_BIN, straInfo, RGB(255,255,0) ); 
 
	straInfo.RemoveAll(); 
	straInfo.Add( "八进制数的结束符" ); 
	m_toolTip.AddControlInfo( IDC_BTN_OCT, straInfo, RGB(255,255,0) ); 
 
	straInfo.RemoveAll(); 
	straInfo.Add( "十六进制数的结束符" ); 
	m_toolTip.AddControlInfo( IDC_BTN_HEX, straInfo, RGB(255,255,0) ); 
 
	straInfo.RemoveAll(); 
	straInfo.Add( "圆周率π" ); 
	m_toolTip.AddControlInfo( IDC_BTN_PI, straInfo, RGB(255,255,0) ); 
 
	straInfo.RemoveAll(); 
	straInfo.Add( "自然对数e" ); 
	m_toolTip.AddControlInfo( IDC_BTN_EE, straInfo, RGB(255,255,0) ); 
	return TRUE;  // return TRUE unless you set the focus to a control 
	              // EXCEPTION: OCX Property Pages should return FALSE 
} 
 
void CCNUM::OnBtn1()  
{ 
	m_strN="1"; 
} 
 
void CCNUM::OnBtn2()  
{ 
	m_strN="2";	 
} 
 
void CCNUM::OnBtn3()  
{ 
	m_strN="3";	 
} 
 
void CCNUM::OnBtn4()  
{ 
	m_strN="4";	 
} 
 
void CCNUM::OnBtn5()  
{ 
	m_strN="5";	 
} 
 
void CCNUM::OnBtn6()  
{ 
	m_strN="6";	 
} 
 
void CCNUM::OnBtn7()  
{ 
	m_strN="7"; 
} 
 
void CCNUM::OnBtn8()  
{ 
	m_strN="8";	 
} 
 
void CCNUM::OnBtn9()  
{ 
	m_strN="9";	 
} 
 
void CCNUM::OnBtn0()  
{ 
	m_strN="0";	 
} 
 
void CCNUM::OnBtnDot()  
{ 
	m_strN=".";	 
} 
 
void CCNUM::OnCancel()  
{ 
	m_strN="OVER";	 
	CDialog::OnCancel(); 
} 
 
void CCNUM::OnOK()  
{ 
//	CDialog::OnOK(); 
} 
 
void CCNUM::OnBtnBin()  
{ 
	m_strN="xb";		 
} 
 
void CCNUM::OnBtnOct()  
{ 
	m_strN="xo";		 
} 
 
void CCNUM::OnBtnHex()  
{ 
	m_strN="xh";		 
} 
 
void CCNUM::OnBtnSpace()  
{ 
	m_strN=" ";		 
} 
 
void CCNUM::OnBtnBack()  
{ 
	m_strN="BACK";	 
} 
 
void CCNUM::OnBtnA()  
{ 
	m_strN="a";	 
} 
 
void CCNUM::OnBtnB()  
{ 
	m_strN="b";	 
} 
 
void CCNUM::OnBtnC()  
{ 
	m_strN="c";	 
} 
 
void CCNUM::OnBtnD()  
{ 
	m_strN="d";	 
} 
 
void CCNUM::OnBtnE()  
{ 
	m_strN="e";	 
} 
 
void CCNUM::OnBtnF()  
{ 
	m_strN="f";	 
} 
 
void CCNUM::OnBtnPi()  
{ 
	m_strN="PI"; 
} 
 
void CCNUM::OnBtnEe()  
{ 
	m_strN="E";	 
} 
 
BOOL CCNUM::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message)  
{ 
	UINT n=pWnd->GetDlgCtrlID(); 
	bool bOk=0; 
	if(n==IDC_BTN_A) bOk=1; 
	else if(n==IDC_BTN_B) bOk=1; 
	else if(n==IDC_BTN_C) bOk=1; 
	else if(n==IDC_BTN_D) bOk=1; 
	else if(n==IDC_BTN_E) bOk=1; 
	else if(n==IDC_BTN_F) bOk=1; 
	else if(n==IDC_BTN_BIN) bOk=1; 
	else if(n==IDC_BTN_OCT) bOk=1; 
	else if(n==IDC_BTN_HEX) bOk=1; 
	else if(n==IDC_BTN_EE) bOk=1; 
	else if(n==IDC_BTN_PI) bOk=1; 
	if(bOk) 
	{ 
		m_toolTip.ShowToolTip( n ); 
		m_nCtrlIDTmp=n; 
		return 1; 
	} 
	m_toolTip.ErasePreviousToolTipDisplay(m_nCtrlIDTmp);	 
	return CDialog::OnSetCursor(pWnd, nHitTest, message); 
}