首页
社区
课程
招聘
[求助]编辑框的小小问题
发表于: 2007-12-5 01:28 4591

[求助]编辑框的小小问题

2007-12-5 01:28
4591
代码1:
             .if eax == IDC_EDIT1
                       invoke GetDlgItemText,hWnd,IDC_EDIT1,addr @szbuffer,sizeof @szbuffer
                       invoke SetDlgItemText,hWnd,IDC_EDIT2,addr @szbuffer
              
              .elseif eax == IDC_EDIT2
                       invoke GetDlgItemText,hWnd,IDC_EDIT2,addr @szbuffer,sizeof @szbuffer
           是在第一个编辑框输入字符串时。可以再第二个编辑框显示
代码2:
             .if eax == IDC_EDIT1
                         invoke GetDlgItemText,hWnd,IDC_EDIT1,addr @szbuffer,sizeof @szbuffer
                         invoke SetDlgItemText,hWnd,IDC_EDIT2,addr @szbuffer
              
              .elseif eax == IDC_EDIT2
                         invoke GetDlgItemText,hWnd,IDC_EDIT2,addr @szbuffer,sizeof @szbuffer
                        invoke SetDlgItemText,hWnd,IDC_EDIT1,addr @szbuffer
         这代码是想再第一个框输入字符串时显示在第二个框中。在第二个框里输入字符,就显示在第一个框里,但是这样应该是这2个消息之间死循环(我自己这么理解的,不知道对不?),可是程序运行后不管点那一个框都会自动退出程序。。。。。

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 321
活跃值: (271)
能力值: ( LV13,RANK:1050 )
在线值:
发帖
回帖
粉丝
2
你理解的没错,SetDlgItemText api调用的时候会给控件发消息WM_SETTEXT,控件收到消息后,就会向对话框过程发送一个WM_COMMAND消息。如此会造成死循环。
2007-12-5 09:40
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
晕。。。代码2会造成堆栈溢出而使程序终止。。。。。。窗体没有出来就完了。。还能点个头。。。对话框初始化时要要EDIT发消息。。。这样初化时就已经进入死循环而导至堆栈溢出了。。。
2007-12-5 13:51
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
我都运行了。只要不点击编辑框,对话框就很正常,一点击编辑框程序就退出了
2007-12-5 16:58
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
NIU
5
应该加入字符串比较,如果两编辑框的字符串相同则不执行SetDlgItemText ,这样就可避免死循环。
2007-12-5 21:20
0
游客
登录 | 注册 方可回帖
返回
//