注册 登录
编程论坛 汇编论坛

win32汇编里对话框的问题

zhoulikelvjj 发布于 2007-11-29 23:06, 1085 次点击
在资源文件里定义了2个文本编辑框,定义如下
   EDITTEXT        IDC_EDIT1,20,16,91,18,ES_AUTOHSCROLL,WS_EX_ACCEPTFILES
   EDITTEXT        IDC_EDIT2,21,52,90,20,ES_AUTOHSCROLL,WS_EX_ACCEPTFILES
在主程序里建立一个模态对话框,对话框子程序代码如下
_Dlgproc proc uses ebx edi esi hWnd,uMsg,wParam,lParam
 LOCAL @szbuffer[128]:byte
        mov eax,uMsg
        .if eax == WM_CLOSE
            invoke EndDialog,hWnd,NULL
        .elseif eax == WM_INITDIALOG   
            invoke LoadIcon,hinstance,IDI_ICON1
            invoke SendMessage,hWnd,WM_SETICON,ICON_BIG,eax
        .elseif eax == WM_COMMAND
            mov eax,wParam
            movzx eax,ax
            .if eax == IDC_EDIT1
             invoke GetDlgItemText,hWnd,IDC_EDIT1,addr @szbuffer,sizeof @szbuffer
             invoke SetDlgItemText,hWnd,IDC_EDIT2,addr @szbuffer

            .elseif eax == IDOK||IDCANCEL
                invoke EndDialog,hWnd,NULL
            .endif
        .else
            mov eax,FALSE
            ret
        .endif
        mov eax,TRUE
        ret
        _Dlgproc endp
红色代码处是想在一个编辑框里输入文字.然后在第二个编辑框里显示出来..可是这样2个框都不能用.点一个框就会退出程序..请高手指点下
4 回复
#2
justholdon2007-11-30 23:49
曾经遇到过这个问题,好像和输入输出焦点有关
看看你的代码里有没有这段:
invoke GetDlgItem,hDlg,IDC_EDIT
invoke SetFocus,eax
在对话框产生后,我们把输入输出焦点设到编辑控件上
找到确切的解决方法再留言给你!
#3
zhoulikelvjj2007-12-01 00:15
代码里没有设置焦点.....
#4
justholdon2007-12-01 11:53
应该是没有设置焦点的错误!你参考一下别人的正确代码吧!
#5
zhoulikelvjj2007-12-01 18:56
网上搜也没搜到类似的代码...大侠先写一个呗...
1