📄
字号:
{
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 + -