如何用vc++编写一个简单的(只有加减乘除)计算器程序?
答案:2 悬赏:60 手机版
解决时间 2021-01-30 04:54
- 提问者网友:椧運幽默
- 2021-01-29 21:33
我是个新新新新新新新手,希望各位帮帮我!不胜感激!
最佳答案
- 五星知识达人网友:詩光轨車
- 2021-01-29 22:48
先设置界面如下
加法按钮代码
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);
加法按钮代码
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);
全部回答
- 1楼网友:独钓一江月
- 2021-01-29 23:01
这个我好像会一点了
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯