永发信息网

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

答案:2  悬赏:60  手机版
解决时间 2021-01-30 04:54
我是个新新新新新新新手,希望各位帮帮我!不胜感激!
最佳答案
先设置界面如下

加法按钮代码
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);
全部回答
这个我好像会一点了
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
大家觉得读商英好还是会计好呢?
新加坡易生养发馆地址在什么地方,想过去办事
千头木奴的意思是什么啊?知道的请说下!
()算法抵抗频率分析攻击能力最强,而对已知明
1894年香港一毫硬币值多少钱
扶贫加油站(子南线)地址好找么,我有些事要过
在赶集网做广告生意不好可以退款吗
飞利浦液晶电视可以打开、但是下面的进度条始
我分手了……我和女朋友在一起8年,我特别希
我是嘉兴刚成立的一家做集成吊顶的公司,想做
奥斯卡发社地址在什么地方,想过去办事
东川加油站(205省道)地址在哪,我要去那里办
卒乍的意思是什么啊?知道的请说下!
保险公司不发工资,该找哪个部门投诉?
ID发型定制地址有知道的么?有点事想过去
推荐资讯
我有一个1.2的布娃娃我想把它里面的棉花拿出
鼓鼻的意思是什么啊?知道的请说下!
长旺二手车展厅怎么去啊,我要去那办事
美好的意思是什么啊?知道的请说下!
县乡镇级公务员待遇怎么算啊
五年级学生小强因被父母责骂,心情低落,老师
王秦庄村地址在哪,我要去那里办事
【陶渊明号什么】古代名人的称号有哪些?比如
对图示结构的几何组成分析,()正确。A.几何可
循还的意思是什么啊?知道的请说下!
我和我老公没有感情了,但我们有一个一岁半的
张博士医考小红宝书中的代码是什么意思
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?