• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

关闭框架窗口会死机的问题

蓝蓝的天 2018-09-07 浏览量:827

界面-查询.jpg

我显示的界面跟上面这个图很像。点击查询按钮,弹出一个框架窗口。

右上角有一个关闭按钮,显示成一个叉号。


我点击它,试图关闭框架窗口,发现有时候会死机。

//回调函数
static void _cbCallback1(WM_MESSAGE * pMsg) 
{

// int i;


hItem1 = pMsg->hWin;
switch (pMsg->MsgId) 
{
case WM_INIT_DIALOG: //初始化属性



break;
case WM_PAINT:


break;
case WM_NOTIFY_PARENT:
Id1 = WM_GetId(pMsg->hWinSrc); //控件ID
NCode1 = pMsg->Data.v; // 功能码 
switch (NCode1)
{
case WM_NOTIFICATION_RELEASED: //只有当释放时有效


break;
case WM_NOTIFICATION_CLICKED:

break;

case WM_NOTIFICATION_SEL_CHANGED:



break;
case WM_NOTIFICATION_LOST_FOCUS:
if(Id1==0x176)
{
frameWIN_Delete(hWin1);


}
break;
}
break;
default:
WM_DefaultProc(pMsg);
}
}
回调函数如上。

我调试时,发现点击关闭按钮,会进到​

Id1 = WM_GetId(pMsg->hWinSrc); //控件ID
NCode1 = pMsg->Data.v; // 功能码 

下面的代码处。​

再然后,进到下面的代码,

case WM_NOTIFICATION_LOST_FOCUS:
if(Id1==0x176)
{
frameWIN_Delete(hWin1);


}

但是有时候会死机。就是程序在回调函数里死循环。

还有,我不太清楚如何正确使框架窗口关闭,以上

程序是我摸索出来的,不一定正确。

哪位大神教教我该如何处理?或者给一个例程也行啊。谢谢!​

0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 从你的描述上来看,你的逻辑有一点问题,你是关闭一个子窗口,所以需要退出子窗口相关运行块,退到上级窗口循环进行处理。
    • 发布于 2018-09-07
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:6
  • 看看你循环代码里有什么语法错误,其次是参数有没有设置错误
    • 发布于2018-09-07
    • 举报
    • 评论 0
    • 0
    • 0

  • 先看虚拟机能否运行,必须虚拟机运行没问题,如果成功,那就看你的床铺资源够不。
    • 发布于2018-09-10
    • 举报
    • 评论 0
    • 0
    • 0

  • 你有先把上一级界面的数据静态保存吗,如果你直接弹出窗口后关闭,程序无法获取上一级菜单离开时的数据,就可能卡死在退出阶段
    • 发布于2018-09-11
    • 举报
    • 评论 0
    • 0
    • 0

  • 要对你的上一级的菜单做好数据的保存,在退出窗口的时候要进行确认
    • 发布于2018-09-28
    • 举报
    • 评论 0
    • 0
    • 0

  • 你先看看关闭框架窗口的时候有没有运行什么回调函数,这个函数是不是有可能会导致死机。
    • 发布于2018-09-30
    • 举报
    • 评论 0
    • 0
    • 0

  • 你的主框架中有一个对应的数据是否有保存,没保存可能会导致死机
    • 发布于2018-10-13
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

关闭框架窗口会死机的问题