工程以前是vc6的,多字节编码
现在改为VS2005,为了尽可能少修改,就没有用unicode
我的一个非模态对话框上的编辑框,映射了int变量,将内容删除为空的时候移去焦点
弹出一个空的messgebox,而且不能显示在对话框的上方,类似非模态
如果在vc6下编译运行,同样情况会弹出提示"请输入一个数"
这是怎么回事啊?

解决方案 »

  1.   

    这个,我分析是对编辑框有个初始值判断,不能为空,为空的时候会弹出提示框。那个messagebox在对话框的下面,是因为你的非模式对话框设置了显示方式为最前端
      

  2.   

    可是弹出的是空提示啊,就相当于一个AfxMessagebox("");
    我的非模态对话框没有设置最前段
    提示显示不到前面的意思是它像个非模态一样, 不能永远在父对话框前面,可以在前,可以在后
      

  3.   

    先UpdateData(TTRUE);
    后UpdateDate(FALSE);
      

  4.   

    先UpdateData(TTRUE);
    后UpdateDate(FALSE);
    ---------------------------
    true的时候已经弹出了.怎么办
      

  5.   

    "请输入一个数"
    ______________________-是系统提示还是你自己定义的
    系统提示的话就是你工程移植后没有设置好EDIT控件
    是你自己定义的就好说了,跟踪一下找出问题
      

  6.   

    找到空提示的原因了
    在mfc的代码中,对编辑框进行了检查,空的时候执行
    AfxMessageBox(nId);这里一个字符串ID号,指向的是afxres.rc中的一个字符串
    我的工程里为何无法取得这个id号对应的字符串呢?