⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄

📁 计算器源代码
💻
📖 第 1 页 / 共 4 页
字号:
	{
		switch(Key)
		{
		case '0':
			btn0.SendMessage(WM_LBUTTONUP);
			break;
		case '1':
			btn1.SendMessage(WM_LBUTTONUP);
			break;
		case '2':
			btn2.SendMessage(WM_LBUTTONUP);
			break;
		case '3':
			btn3.SendMessage(WM_LBUTTONUP);
			break;
		case '4':
			btn4.SendMessage(WM_LBUTTONUP);
			break;
		case '5':
			btn5.SendMessage(WM_LBUTTONUP);
			break;
		case '6':
			btn6.SendMessage(WM_LBUTTONUP);
			break;
		case '7':
			btn7.SendMessage(WM_LBUTTONUP);
			break;
		case '8':
			btn8.SendMessage(WM_LBUTTONUP);
			break;
		case '9':
			btn9.SendMessage(WM_LBUTTONUP);
			break;
		case '+':
			btnAdd.SendMessage(WM_LBUTTONUP);
			break;
		case '-':
			btnSub.SendMessage(WM_LBUTTONUP);
			break;
		case '*':
			btnMul.SendMessage(WM_LBUTTONUP);
			break;
		case '/':
			btnDiv.SendMessage(WM_LBUTTONUP);
			break;
		case '.':
			btnPoint.SendMessage(WM_LBUTTONUP);
			break;
		case '%':
			btnPercent.SendMessage(WM_LBUTTONUP);
			break;
		case '=':
			btnEqual.SendMessage(WM_LBUTTONUP);
			break;
		case 'b':
			btnBackspace.SendMessage(WM_LBUTTONUP);
			break;
		case 'e':
			btnClear.SendMessage(WM_LBUTTONUP);
			break;
		case 'A':
			btnA.SendMessage(WM_LBUTTONUP);
			break;
		case 'B':
			btnB.SendMessage(WM_LBUTTONUP);
			break;
		case 'C':
			btnC.SendMessage(WM_LBUTTONUP);
			break;
		case 'D':
			btnD.SendMessage(WM_LBUTTONUP);
			break;
		case 'E':
			btnE.SendMessage(WM_LBUTTONUP);
			break;
		case 'F':
			btnF.SendMessage(WM_LBUTTONUP);
			break;
		case 'L':
			btnLg.SendMessage(WM_LBUTTONUP);
			break;
		case 'N':
			btnLn.SendMessage(WM_LBUTTONUP);
			break;
		case 'O':
			btnCos.SendMessage(WM_LBUTTONUP);
			break;
		case 'P':
			btnPi.SendMessage(WM_LBUTTONUP);
			break;
		case 'R':
			btnReciprocal.SendMessage(WM_LBUTTONUP);
			break;
		case 'S':
			btnSin.SendMessage(WM_LBUTTONUP);
			break;
		case 'T':
			btnTan.SendMessage(WM_LBUTTONUP);
			break;
		case 'X':
			btnExp.SendMessage(WM_LBUTTONUP);
			break;
		case 'Y':
			btnxStepy.SendMessage(WM_LBUTTONUP);
			break;
		}
		return FALSE;
	}
	return CDialog::PreTranslateMessage(pMsg);
}

void CMyDlg::OnCopy() 
{
	// TODO: Add your command handler code here
	ScrLen=Screen.GetWindowTextLength();
	Screen.GetWindowText(ScrText,ScrLen+1);
	if(ScrText[ScrLen-1]=='.')
	{
		ScrText[ScrLen-1]=0;
		ScrLen--;
	}
	if(OpenClipboard())
	{
		HGLOBAL clipbuffer=GlobalAlloc(GMEM_DDESHARE,ScrLen+1);
		char *buffer=(char *) GlobalLock(clipbuffer);
		for(int i=0;i<ScrLen;i++)
			buffer[i]=ScrText[i];
		buffer[i]=0;
		GlobalUnlock(clipbuffer);
		SetClipboardData(CF_TEXT,clipbuffer);
		CloseClipboard();
	}
}

void CMyDlg::OnPaste() 
{
	// TODO: Add your command handler code here
	char *buffer;
	if(OpenClipboard())
		buffer=(char *) GetClipboardData(CF_TEXT);
	CloseClipboard();
	if(!*buffer) return;
	OnClear();
	char _chr=*buffer,chr;
	while(chr=*buffer++)
		switch(chr)
		{
		case '0':
			btn0.SendMessage(WM_LBUTTONDOWN);
			Delay(30);
			btn0.SendMessage(WM_LBUTTONUP);
			break;
		case '1':
			btn1.SendMessage(WM_LBUTTONDOWN);
			Delay(30);
			btn1.SendMessage(WM_LBUTTONUP);
			break;
		case '2':
			btn2.SendMessage(WM_LBUTTONDOWN);
			Delay(30);
			btn2.SendMessage(WM_LBUTTONUP);
			break;
		case '3':
			btn3.SendMessage(WM_LBUTTONDOWN);
			Delay(30);
			btn3.SendMessage(WM_LBUTTONUP);
			break;
		case '4':
			btn4.SendMessage(WM_LBUTTONDOWN);
			Delay(30);
			btn4.SendMessage(WM_LBUTTONUP);
			break;
		case '5':
			btn5.SendMessage(WM_LBUTTONDOWN);
			Delay(30);
			btn5.SendMessage(WM_LBUTTONUP);
			break;
		case '6':
			btn6.SendMessage(WM_LBUTTONDOWN);
			Delay(30);
			btn6.SendMessage(WM_LBUTTONUP);
			break;
		case '7':
			btn7.SendMessage(WM_LBUTTONDOWN);
			Delay(30);
			btn7.SendMessage(WM_LBUTTONUP);
			break;
		case '8':
			btn8.SendMessage(WM_LBUTTONDOWN);
			Delay(30);
			btn8.SendMessage(WM_LBUTTONUP);
			break;
		case '9':
			btn9.SendMessage(WM_LBUTTONDOWN);
			Delay(30);
			btn9.SendMessage(WM_LBUTTONUP);
			break;
		case '.':
			btnPoint.SendMessage(WM_LBUTTONDOWN);
			Delay(30);
			btnPoint.SendMessage(WM_LBUTTONUP);
			break;
		case 'A':
			btnA.SendMessage(WM_LBUTTONDOWN);
			Delay(30);
			btnA.SendMessage(WM_LBUTTONUP);
			break;
		case 'B':
			btnB.SendMessage(WM_LBUTTONDOWN);
			Delay(30);
			btnB.SendMessage(WM_LBUTTONUP);
			break;
		case 'C':
			btnC.SendMessage(WM_LBUTTONDOWN);
			Delay(30);
			btnC.SendMessage(WM_LBUTTONUP);
			break;
		case 'D':
			btnD.SendMessage(WM_LBUTTONDOWN);
			Delay(30);
			btnD.SendMessage(WM_LBUTTONUP);
			break;
		case 'E':
			btnE.SendMessage(WM_LBUTTONDOWN);
			Delay(30);
			btnE.SendMessage(WM_LBUTTONUP);
			break;
		case 'F':
			btnF.SendMessage(WM_LBUTTONDOWN);
			Delay(30);
			btnF.SendMessage(WM_LBUTTONUP);
		}
	if(_chr=='-')
		OnNeg();
}

void CMyDlg::OnInitMenuPopup(CMenu *pPopupMenu,UINT nIndex,BOOL bSysMenu)
{
	pPopupMenu->EnableMenuItem(ID_PASTE,IsClipboardFormatAvailable(CF_TEXT) ? MF_ENABLED:MF_GRAYED);
	CWnd::OnInitMenuPopup(pPopupMenu,nIndex,bSysMenu);
}

void CMyDlg::OnStandard() 
{
	// TODO: Add your command handler code here
	if(GetMenu()->GetMenuState(ID_STANDARD,MF_BYCOMMAND)==MF_UNCHECKED)
	{
		RECT rt;
		Screen.SetWindowText(" 0.");
		ScrNum=0;
		MNum=0;
		Scr_Num=0;
		Sign=0;
		Flag=0;
		Fpoint=0;;
		FNum=FNUM10;
		Num16.SetCheck(0);
		Num10.SetCheck(0);
		Num8.SetCheck(0);
		Num2.SetCheck(0);
		GetMenu()->CheckMenuItem(ID_STANDARD,MF_CHECKED);
		GetMenu()->CheckMenuItem(ID_EXTEND,MF_UNCHECKED);
		btnC.ShowWindow(SW_HIDE);
		btnD.ShowWindow(SW_HIDE);
		btnE.ShowWindow(SW_HIDE);
		btnF.ShowWindow(SW_HIDE);
		btnA.ShowWindow(SW_HIDE);
		btnB.ShowWindow(SW_HIDE);
		btnNot.ShowWindow(SW_HIDE);
		btnAnd.ShowWindow(SW_HIDE);
		btnOr.ShowWindow(SW_HIDE);
		btnXor.ShowWindow(SW_HIDE);
		btnxStepy.ShowWindow(SW_HIDE);
		btnxStep3.ShowWindow(SW_HIDE);
		btnxStep2.ShowWindow(SW_HIDE);
		btnFactorial.ShowWindow(SW_HIDE);
		btnPi.ShowWindow(SW_HIDE);
		btnLn.ShowWindow(SW_HIDE);
		btnLg.ShowWindow(SW_HIDE);
		btnExp.ShowWindow(SW_HIDE);
		btnAsin.ShowWindow(SW_HIDE);
		btnAcos.ShowWindow(SW_HIDE);
		btnAtan.ShowWindow(SW_HIDE);
		btnSin.ShowWindow(SW_HIDE);
		btnCos.ShowWindow(SW_HIDE);
		btnTan.ShowWindow(SW_HIDE);
		Group.ShowWindow(SW_HIDE);
		Num16.ShowWindow(SW_HIDE);
		Num10.ShowWindow(SW_HIDE);
		Num8.ShowWindow(SW_HIDE);
		Num2.ShowWindow(SW_HIDE);
		Screen.GetWindowRect(&rt);
		ScreenToClient(&rt);
		rt.left-=90;
		rt.right-=90;
		Screen.MoveWindow(&rt);
		Show.GetWindowRect(&rt);
		ScreenToClient(&rt);
		rt.left-=180;
		rt.right-=180;
		Show.MoveWindow(&rt);
		btn0.GetWindowRect(&rt);
		ScreenToClient(&rt);
		rt.left-=180;
		rt.right-=180;
		btn0.MoveWindow(&rt);
		btn1.GetWindowRect(&rt);
		ScreenToClient(&rt);
		rt.left-=180;
		rt.right-=180;
		btn1.MoveWindow(&rt);
		btn2.GetWindowRect(&rt);
		ScreenToClient(&rt);
		rt.left-=180;
		rt.right-=180;
		btn2.MoveWindow(&rt);
		btn3.GetWindowRect(&rt);
		ScreenToClient(&rt);
		rt.left-=180;
		rt.right-=180;
		btn3.MoveWindow(&rt);
		btn4.GetWindowRect(&rt);
		ScreenToClient(&rt);
		rt.left-=180;
		rt.right-=180;
		btn4.MoveWindow(&rt);
		btn5.GetWindowRect(&rt);
		ScreenToClient(&rt);
		rt.left-=180;
		rt.right-=180;
		btn5.MoveWindow(&rt);
		btn6.GetWindowRect(&rt);
		ScreenToClient(&rt);
		rt.left-=180;
		rt.right-=180;
		btn6.MoveWindow(&rt);
		btn7.GetWindowRect(&rt);
		ScreenToClient(&rt);
		rt.left-=180;
		rt.right-=180;
		btn7.MoveWindow(&rt);
		btn8.GetWindowRect(&rt);
		ScreenToClient(&rt);
		rt.left-=180;
		rt.right-=180;
		btn8.MoveWindow(&rt);
		btn9.GetWindowRect(&rt);
		ScreenToClient(&rt);
		rt.left-=180;
		rt.right-=180;
		btn9.MoveWindow(&rt);
		btnNeg.GetWindowRect(&rt);
		ScreenToClient(&rt);
		rt.left-=180;
		rt.right-=180;
		btnNeg.MoveWindow(&rt);
		btnPoint.GetWindowRect(&rt);
		ScreenToClient(&rt);
		rt.left-=180;
		rt.right-=180;
		btnPoint.MoveWindow(&rt);
		btnAdd.GetWindowRect(&rt);
		ScreenToClient(&rt);
		rt.left-=180;
		rt.right-=180;
		btnAdd.MoveWindow(&rt);	
		btnSub.GetWindowRect(&rt);
		ScreenToClient(&rt);
		rt.left-=180;
		rt.right-=180;
		btnSub.MoveWindow(&rt);
		btnMul.GetWindowRect(&rt);
		ScreenToClient(&rt);
		rt.left-=180;
		rt.right-=180;
		btnMul.MoveWindow(&rt);
		btnDiv.GetWindowRect(&rt);
		ScreenToClient(&rt);
		rt.left-=180;
		rt.right-=180;
		btnDiv.MoveWindow(&rt);
		btnSqrt.GetWindowRect(&rt);
		ScreenToClient(&rt);
		rt.left-=180;
		rt.right-=180;
		btnSqrt.MoveWindow(&rt);
		btnPercent.GetWindowRect(&rt);
		ScreenToClient(&rt);
		rt.left-=180;
		rt.right-=180;
		btnPercent.MoveWindow(&rt);
		btnReciprocal.GetWindowRect(&rt);
		ScreenToClient(&rt);
		rt.left-=180;
		rt.right-=180;
		btnReciprocal.MoveWindow(&rt);
		btnEqual.GetWindowRect(&rt);
		ScreenToClient(&rt);
		rt.left-=180;
		rt.right-=180;
		btnEqual.MoveWindow(&rt);
		btnMadd.GetWindowRect(&rt);
		ScreenToClient(&rt);
		rt.left-=180;
		rt.right-=180;
		btnMadd.MoveWindow(&rt);
		btnMsave.GetWindowRect(&rt);
		ScreenToClient(&rt);
		rt.left-=180;
		rt.right-=180;
		btnMsave.MoveWindow(&rt);
		btnMread.GetWindowRect(&rt);
		ScreenToClient(&rt);
		rt.left-=180;
		rt.right-=180;
		btnMread.MoveWindow(&rt);
		btnMclear.GetWindowRect(&rt);
		ScreenToClient(&rt);
		rt.left-=180;
		rt.right-=180;
		btnMclear.MoveWindow(&rt);
		btnBackspace.GetWindowRect(&rt);
		ScreenToClient(&rt);
		rt.left-=180;
		rt.right-=180;
		btnBackspace.MoveWindow(&rt);
		btnClean.GetWindowRect(&rt);
		ScreenToClient(&rt);
		rt.left-=180;
		rt.right-=180;
		btnClean.MoveWindow(&rt);
		btnClear.GetWindowRect(&rt);
		ScreenToClient(&rt);
		rt.left-=180;
		rt.right-=180;
		btnClear.MoveWindow(&rt);
		GetWindowRect(&rt);
		rt.right-=180;
		rt.bottom-=40;
		MoveWindow(&rt);
		btn2.EnableWindow();
		btn3.EnableWindow();
		btn4.EnableWindow();
		btn5.EnableWindow();
		btn6.EnableWindow();
		btn7.EnableWindow();
		btn8.EnableWindow();
		btn9.EnableWindow();
		btnPoint.EnableWindow();
		btnSin.EnableWindow();
		btnCos.EnableWindow();
		btnTan.EnableWindow();
		btnAsin.EnableWindow();
		btnAcos.EnableWindow();
		btnAtan.EnableWindow();
		btnExp.EnableWindow();
		btnLn.EnableWindow();
		btnLg.EnableWindow();
		btnPi.EnableWindow();
		btnSqrt.EnableWindow();
	}
}

void CMyDlg::OnExtend() 
{
	// TODO: Add your command handler code here
	if(GetMenu()->GetMenuState(ID_EXTEND,MF_BYCOMMAND)==MF_UNCHECKED)
	{
		RECT rt;
		Screen.SetWindowText(" 0.");
		ScrNum=0;
		MNum=0;
		Scr_Num=0;
		Sign=0;
		Flag=0;
		Fpoint=0;
		FNum=FNUM10;
		Num10.SetCheck(1);
		GetMenu()->CheckMenuItem(ID_EXTEND,MF_CHECKED);
		GetMenu()->CheckMenuItem(ID_STANDARD,MF_UNCHECKED);
		GetWindowRect(&rt);
		rt.right+=180;
		rt.bottom+=40;
		MoveWindow(&rt);
		Screen.GetWindowRect(&rt);
		ScreenToClient(&rt);
		rt.left+=90;
		rt.right+=90;
		Screen.MoveWindow(&rt);
		Show.GetWindowRect(&rt);
		ScreenToClient(&rt);
		rt.left+=180;
		rt.right+=180;
		Show.MoveWindow(&rt);
		btn0.GetWindowRect(&rt);
		ScreenToClient(&rt);
		rt.left+=180;
		rt.right+=180;
		btn0.MoveWindow(&rt);
		btn1.GetWindowRect(&rt);
		ScreenToClient(&rt);
		rt.left+=180;
		rt.right+=180;
		btn1.MoveWindow(&rt);
		btn2.GetWindowRect(&rt);
		ScreenToClient(&rt);
		rt.left+=180;
		rt.right+=180;
		btn2.MoveWindow(&rt);
		btn3.GetWindowRect(&rt);
		ScreenToClient(&rt);
		rt.left+=180;
		rt.right+=180;
		btn3.MoveWindow(&rt);
		btn4.GetWindowRect(&rt);
		ScreenToClient(&rt);
		rt.left+=180;
		rt.right+=180;
		btn4.MoveWindow(&rt);
		btn5.GetWindowRect(&rt);
		ScreenToClient(&rt);
		rt.left+=180;
		rt.right+=180;
		btn5.MoveWindow(&rt);
		btn6.GetWindowRect(&rt);
		ScreenToClient(&rt);
		rt.left+=180;
		rt.right+=180;
		btn6.MoveWindow(&rt);
		btn7.GetWindowRect(&rt);
		ScreenToClient(&rt);
		rt.left+=180;
		rt.right+=180;
		btn7.MoveWindow(&rt);
		btn8.GetWindowRect(&rt);
		ScreenToClient(&rt);
		rt.left+=180;
		rt.right+=180;
		btn8.MoveWindow(&rt);
		btn9.GetWindowRect(&rt);
		ScreenToClient(&rt);
		rt.left+=180;
		rt.right+=180;
		btn9.MoveWindow(&rt);
		btnNeg.GetWindowRect(&rt);
		ScreenToClient(&rt);
		rt.left+=180;
		rt.right+=180;
		btnNeg.MoveWindow(&rt);
		btnPoint.GetWindowRect(&rt);
		ScreenToClient(&rt);
		rt.left+=180;
		rt.right+=180;
		btnPoint.MoveWindow(&rt);
		btnAdd.GetWindowRect(&rt);
		ScreenToClient(&rt);
		rt.left+=180;
		rt.right+=180;
		btnAdd.MoveWindow(&rt);	
		btnSub.GetWindowRect(&rt);
		ScreenToClient(&rt);
		rt.left+=180;
		rt.right+=180;
		btnSub.MoveWindow(&rt);
		btnMul.GetWindowRect(&rt);
		ScreenToClient(&rt);
		rt.left+=180;
		rt.right+=180;
		btnMul.MoveWindow(&rt);
		btnDiv.GetWindowRect(&rt);
		ScreenToClient(&rt);
		rt.left+=180;
		rt.right+=180;
		btnDiv.MoveWindow(&rt);
		btnSqrt.GetWindowRect(&rt);
		ScreenToClient(&rt);
		rt.left+=180;
		rt.right+=180;
		btnSqrt.MoveWindow(&rt);
		btnPercent.GetWindowRect(&rt);
		ScreenToClient(&rt);
		rt.left+=180;
		rt.right+=180;
		btnPercent.MoveWindow(&rt);
		btnReciprocal.GetWindowRect(&rt);
		ScreenToClient(&rt);
		rt.left+=180;
		rt.right+=180;
		btnReciprocal.MoveWindow(&rt);
		btnEqual.GetWindowRect(&rt);
		ScreenToClient(&rt);
		rt.left+=180;
		rt.right+=180;
		btnEqual.MoveWindow(&rt);
		btnMadd.GetWindowRect(&rt);
		ScreenToClient(&rt);
		rt.left+=180;
		rt.right+=180;
		btnMadd.MoveWindow(&rt);
		btnMsave.GetWindowRect(&rt);
		ScreenToClient(&rt);
		rt.left+=180;
		rt.right+=180;
		btnMsave.MoveWindow(&rt);
		btnMread.GetWindowRect(&rt);
		ScreenToClient(&rt);
		rt.left+=180;
		rt.right+=180;
		btnMread.MoveWindow(&rt);
		btnMclear.GetWindowRect(&rt);
		ScreenToClient(&rt);
		rt.left+=180;
		rt.right+=180;
		btnMclear.MoveWindow(&rt);
		btnBackspace.GetWindowRect(&rt);
		ScreenToClient(&rt);
		rt.left+=180;
		rt.right+=180;
		btnBackspace.MoveWindow(&rt);
		btnClean.GetWindowRect(&rt);
		ScreenToClient(&rt);
		rt.left+=180;
		rt.right+=180;
		btnClean.MoveWindow(&rt);
		btnClear.GetWindowRect(&rt);
		ScreenToClient(&rt);
		rt.left+=180;
		rt.right+=180;
		btnClear.MoveWindow(&rt);
		btnA.ShowWindow(SW_SHOW);
		btnB.ShowWindow(SW_SHOW);
		btnC.ShowWindow(SW_SHOW);
		btnD.ShowWindow(SW_SHOW);
		btnE.ShowWindow(SW_SHOW);
		btnF.ShowWindow(SW_SHOW);
		btnNot.ShowWindow(SW_SHOW);
		btnAnd.ShowWindow(SW_SHOW);
		btnOr.ShowWindow(SW_SHOW);
		btnXor.ShowWindow(SW_SHOW);
		btnxStepy.ShowWindow(SW_SHOW);
		btnxStep3.ShowWindow(SW_SHOW);
		btnxStep2.ShowWindow(SW_SHOW);
		btnFactorial.ShowWindow(SW_SHOW);
		btnPi.ShowWindow(SW_SHOW);
		btnLn.ShowWindow(SW_SHOW);
		btnLg.ShowWindow(SW_SHOW);
		btnExp.ShowWindow(SW_SHOW);
		btnAsin.ShowWindow(SW_SHOW);
		btnAcos.ShowWindow(SW_SHOW);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -