CDialog到底什么时候释放

comeonstuding 2003-10-06 09:56:01
我在一个CDialog中的一个事件中
void CNetserverDlg::OnKillfocusCardId()
{
// TODO: Add your control notification handler code here
AfxMessageBox("此号码不存在请于有关单位联系");
}
输入后跳出AfxMessageBox("此号码不存在请于有关单位联系");
按确定后CDialog随之不见了
不知道是没有重绘还是被释放了
那怎样才能使他再次输入其它事件
...全文
101 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
comeonstuding 2003-10-08
  • 打赏
  • 举报
回复
那怎样才能使他不退出。
可否给出具体的方案
chinaqianhu 2003-10-07
  • 打赏
  • 举报
回复
我测试了一下,你如果按tab键时失去焦点时没问题,
你肯定是输入数据后按回车键了,那样对话框会自动调用CDialog::ONOK()函数;
当然退出了。。。

如何处理ONOK函数,看看VC++技术内幕。。
cy214 2003-10-07
  • 打赏
  • 举报
回复
默认情况下回车不被edit响应 所以按回车后应该不会有killfocus事件的发生 你是不是添加了回车的响应导致退出的
我刚试了 一个edit响应失去焦点的事件后没问题的 dialog不会退出(按道理也是没关系得..)
Lxyer 2003-10-07
  • 打赏
  • 举报
回复
这个是被释放了,你又没有 new 一下
comeonstuding 2003-10-06
  • 打赏
  • 举报
回复
我也建立了一个BUTTON并建立了它的单击处理函数
void CNetserverDlg::OnOk()
{
// TODO: Add your control notification handler code here

CDialog::OnOK();


}
但CDialog照样自己释放了
comeonstuding 2003-10-06
  • 打赏
  • 举报
回复
在编辑完EDIT后回车
跳出AFXMESSAGEBOX所产生的对话框单击AFXMESSAGEBOX里的确定按钮
对话框就被释放了
comeonstuding 2003-10-06
  • 打赏
  • 举报
回复
IDC_EDIT1的EN_KILLFOCUS消息中
comeonstuding 2003-10-06
  • 打赏
  • 举报
回复
大家可以试一试
用向导做一个(用MFC APPWIZARD)创建一个基本对话类型
后新建一个edit来是一试
comeonstuding 2003-10-06
  • 打赏
  • 举报
回复
我在CDialog中什么都没做只是新建一个edit
在edit的OnKillfocusEdit1()事件中
也只有这个语句
AfxMessageBox("此号码不存在请于有关单位联系");
但按确定后CDialog随之不见了
而我并没有执行或引用CDialog::OnOK();
zhucde 2003-10-06
  • 打赏
  • 举报
回复
重载WM_CLOSE

void CNetserverDlg::OnClose()
{
int a=MessageBox("此号码不存在请于有关单位联系","提示?",MB_YESNO|MB_ICONQUESTION);

if(a==IDYES)
CDialog::OnClose();//如果按确定,则关闭对话框

if(a==IDCANCEL)//如果按了取消则继续执行(不关闭对话框)
{
..........
}

}
bigflyingpig 2003-10-06
  • 打赏
  • 举报
回复
是不是先按了对话框的OK键,然后跳出这个MessageBox?
如果是这样的话,可能是调用了CDialog::OnOK(),
才使得对话框关闭了
在这个OnKillfocus函数中,是不是也调用的基类的OnKillfocus函数?
nonocast 2003-10-06
  • 打赏
  • 举报
回复
没听明白
能在详细一点吗?
kimzhang 2003-10-06
  • 打赏
  • 举报
回复
模态对话框一般就这样,只在原来的对话框中添加一个edit控件,点击确定,会调用OnOK函数,
除非重载这个函数,不再让他调用CDialog::OnOK, 或者自己添加一个按钮,然后编写相应的代码就可以了.
lsl7909 2003-10-06
  • 打赏
  • 举报
回复
重载OnOk()函数
Paris_Luo 2003-10-06
  • 打赏
  • 举报
回复
常理是不会出现这种情况的
你跟到消息响应函数里面去看看,到底执行到哪一步的时候对话框消失了,就清楚了
  • 打赏
  • 举报
回复
void CNetserverDlg::OnKillfocusCardId()

你讲的不太清楚,你通过什么消息让上面的函数作用的。
在CEdit空间里面编辑之后如何动作啊??

是不是点了确定按钮或回车。总不能弹出对话框后直接弹出messagebox吧??

如果是就重载onok函数吧。
hotness28 2003-10-06
  • 打赏
  • 举报
回复
up,没讲明白把?莫态对话框就这样把?

16,473

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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