mfc的问题

huax_ue 2009-04-23 04:57:52
void CTDlg::OnChangeEdit1()
{

CWnd::UpdateData(TRUE);
CString Uppervalue;//
Uppervalue=m_e1; //m_e1为编辑框的值CSTRINE型
Uppervalue.MakeUpper();
if(Uppervalue="MSPAINT")
{
system("Mspaint.EXE");
m_e1=" ";
CWnd::UpdateData(FALSE);
}
else if(Uppervalue="CALCULATOR")
{
system("calc.exe");
m_e1=" ";
UpdateData(FALSE);
}
程序先建立一个MFC基本框架,然后创建一个文本编辑框,本意是在编辑框中输入MSPAINT运行画图文件输入CALCULATOR运行计算器,但结果不管输入什么,只要键盘有动就会运行画图程序,请问这是什么原因啊
...全文
107 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
firsthym 2009-04-23
  • 打赏
  • 举报
回复
[Quote=引用楼主 huax_ue 的帖子:]
void CTDlg::OnChangeEdit1()
{

CWnd::UpdateData(TRUE);
CString Uppervalue;//
Uppervalue=m_e1; //m_e1为编辑框的值CSTRINE型
Uppervalue.MakeUpper();
if(Uppervalue="MSPAINT")
{
system("Mspaint.EXE");
m_e1=" ";
CWnd::UpdateData(FALSE);
}
else if(Uppervalue="CALCULATOR")
{
system("calc.exe");
m_e1=" ";
UpdateData(FALSE);
}
程序先建立一个MFC基本框架,然后创建一个文…
[/Quote]

不是这个问题吧,那只是一个语法错误,你响应的消息错误,不是OnChangeEdit1(),这样,一旦文本框有变化,即你一按键盘,就会触发这个函数。
你加个button来响应COMMAND消息吧
shexinwei 2009-04-23
  • 打赏
  • 举报
回复
[Quote=引用楼主 huax_ue 的帖子:]
void CTDlg::OnChangeEdit1()
{

CWnd::UpdateData(TRUE);
CString Uppervalue;//
Uppervalue=m_e1; //m_e1为编辑框的值CSTRINE型
Uppervalue.MakeUpper();
if(Uppervalue=="MSPAINT") //==
{
system("Mspaint.EXE");
m_e1=" ";
CWnd::UpdateData(FALSE);
}
else if(Uppervalue=="CALCULATOR") //==
{
system("calc.exe");
m_e1=" ";
UpdateData(FALSE);
} [/Quote]

注意了!!
fiyaa 2009-04-23
  • 打赏
  • 举报
回复
建议这样写if ("CALCULATOR"== Uppervalue);
这样写是一个很好的习惯,因为如果你写成: if ("CALCULATOR"= Uppervalue);编译是不会通过的....






  • 打赏
  • 举报
回复
if(Uppervalue="MSPAINT")
{
system("Mspaint.EXE");
m_e1=" ";
CWnd::UpdateData(FALSE);
}
else if(Uppervalue="CALCULATOR")
{

==,全写错了
coverallwangp 2009-04-23
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 huax_ue 的回复:]
又错是==才是附值
[/Quote]

== 是判断两边是否相等 = 才是赋值
lingyin55 2009-04-23
  • 打赏
  • 举报
回复
=号才是赋值。。
[Quote=引用 4 楼 huax_ue 的回复:]
又错是==才是附值
[/Quote]
huax_ue 2009-04-23
  • 打赏
  • 举报
回复
郁闷了,我自己糊涂,==是判断
lingyin55 2009-04-23
  • 打赏
  • 举报
回复
if(Uppervalue="MSPAINT")
改为if(Uppervalue=="MSPAINT")
要不if语句不为0,恒为真啊。
huax_ue 2009-04-23
  • 打赏
  • 举报
回复
又错是==才是附值
huax_ue 2009-04-23
  • 打赏
  • 举报
回复
啊!!!!!!!!!!我到处修改都没用,你说了我倒明白了,=才是附值,真是高手一下就知道我是初学者,回去我改改通过了再来给你加分哦
arong1234 2009-04-23
  • 打赏
  • 举报
回复
if(Uppervalue="MSPAINT")
改为
if(Uppervalue=="MSPAINT")

这是初学者常犯的错误
coverallwangp 2009-04-23
  • 打赏
  • 举报
回复
if判断的时候用 == 不是用 =

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧