如何用vc++编写一个简单的(只有加减乘除)计算器程序?

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/29 14:02:42
如何用vc++编写一个简单的(只有加减乘除)计算器程序?

如何用vc++编写一个简单的(只有加减乘除)计算器程序?
如何用vc++编写一个简单的(只有加减乘除)计算器程序?

如何用vc++编写一个简单的(只有加减乘除)计算器程序?
先设置界面如下
加法按钮代码
void CMy03Dlg::OnBnClickedButton1()
{
// TODO:在此添加控件通知处理程序代码
UpdateData(TRUE);
m_Nub3=m_Nub1+m_Nub2;
UpdateData(FALSE);
}
减法按钮代码
void CMy03Dlg::OnBnClickedButton2()
{
// TODO:在此添加控件通知处理程序代码
UpdateData(TRUE);
m_Nub3=m_Nub1-m_Nub2;
UpdateData(FALSE);
}
乘法按钮代码
void CMy03Dlg::OnBnClickedButton3()
{
// TODO:在此添加控件通知处理程序代码
UpdateData(TRUE);
m_Nub3=m_Nub1*m_Nub2;
UpdateData(FALSE);
}
除法按钮代码
void CMy03Dlg::OnBnClickedButton4()
{
// TODO:在此添加控件通知处理程序代码
UpdateData(TRUE);
if(m_Nub2!=0)
m_Nub3=m_Nub1 / m_Nub2;
else
AfxMessageBox("被除数不能为0");
UpdateData(FALSE);
}
清除按钮代码
void CMy03Dlg::OnBnClickedButton5()
{
// TODO:在此添加控件通知处理程序代码
UpdateData(TRUE);
m_Nub3=0;
m_Nub1=0;
m_Nub2=0;
UpdateData(FALSE);
}
结束按钮代码
void CMy03Dlg::OnBnClickedButton6()
{
// TODO:在此添加控件通知处理程序代码
CDialog::OnOK();
}
如果只允许在输入框中输入数据应该怎样处理?
制作托盘程序
目的:在任务栏中建立一个图标,使该程序永远驻留在内存中.例如邮件检查程序可以作为驻留程序,一旦有邮件来了,就可以接收邮件.
Shell_NotifyIcon函数发送消息来增加、删除、修改任务栏的图标
BOOL TrayMessage(HWND hWnd,DWORD dwMessage,HICON hIcon,PSTR pszTip)
{
BOOL res;
NOTIFYICONDATA tnd;
tnd.cbSize = sizeof(NOTIFYICONDATA);
tnd.hWnd = hWnd;
tnd.uID = IDI_ICON1;
tnd.uFlags = NIF_MESSAGE|NIF_ICON|NIF_TIP;
tnd.uCallbackMessage = WM_MY_TRAY_NOTIFICATION;
tnd.hIcon = hIcon;
lstrcpyn(tnd.szTip,pszTip,sizeof(tnd.szTip));
res = Shell_NotifyIcon(dwMessage,&tnd);// dwMessage为NIM_ADD从任务栏中添加图标、NIM_DELETE从任务栏中删除图标、NIM_MODIFY改变任务栏中图标
if (hIcon)
DestroyIcon(hIcon);
return res;
}
定义一个回调消息:WM_MY_TRAY_NOTIFICATION
在DLG的CPP文件中,
#define WM_MY_TRAY_NOTIFICATION WM_USER+100
为对话框添加消息映射ON_MESSAGE(WM_MY_TRAY_NOTIFICATION,OnTrayNotification)
在DLG的头文件中应该有
public:
long m_Nub1;
float m_Nub3;
CBitmapButton Button;
afx_msg void OnBnClickedButton1();
long m_Nub2;
afx_msg void OnBnClickedButton2();
afx_msg void OnBnClickedButton4();
afx_msg void OnBnClickedButton5();
afx_msg void OnBnClickedButton3();
afx_msg void OnBnClickedButton6();
afx_msg void OnBnClickedButton7();
afx_msg LRESULT OnTrayNotification(WPARAM wparam,LPARAM lparam);
在DLG的CPP文件中应该有
BEGIN_MESSAGE_MAP(CMailCheckDlg,CDialog)
……
ON_MESSAGE(WM_MY_TRAY_NOTIFICATION,OnTrayNotification)
……
END_MESSAGE_MAP()
并定义一个回调消息函数
LRESULT CMailCheckDlg::OnTrayNotification(WPARAM wparam,LPARAM lparam)
{
switch (lparam )
{
case WM_RBUTTONUP:
case WM_LBUTTONDBLCLK://修改不同的按钮处理事件,以观察图标退出效果.
ShowWindow(SW_SHOW);
TrayMessage(m_hWnd,NIM_DELETE,NULL,"");//从任务栏中删除图标
}
return 0;
}
在对话框窗口上添加“驻留”按钮,双击按钮添加代码
void CMailCheckDlg::OnBnClickedButton1()
{
// TODO:在此添加控件通知处理程序代码
下面程序向任务栏添加图标
TrayMessage(m_hWnd,NIM_ADD,NULL,"计算器程序");
TrayMessage(m_hWnd,NIM_MODIFY,m_hIcon,"计算器程序");
ShowWindow(SW_HIDE);