函数右括号错误! PreTranslateMessage(MSG* pMsg)未返回

我用一个模态对话框调dialog1用了另个一个模态对话框dialog2,dialog2只是简单的选择一个数值,然后就自动关闭.然后 ,dialog1使用dialog2的公有成员变量.
最后在这个函数结束的时候,出现的这个中断:
ASSERT(::IsWindow(m_hWnd));

函数大致是这样子的
void CDialog1::fun()
{

if(...){
        CString csin;
        CDialog2 dialog2(csin);
      if(dialog2.DoModal() == IDOK)
      {
        csin = dialog2.m_csin;
      }
}

.......//做其他事情
}//执行到这个右括号的时候,触发ASSERT(::IsWindow(m_hWnd));中断,
我想不明白哪里错误了!

引用 37 楼 xylicon 的回复:
其实这样的问题,lz调试一下,看看堆栈出错的地方,不就知道是哪里出问题了吗。


看见大大的方法,第一次使用堆栈调试,
到这
CWnd* CWnd::GetTopLevelParent() const
{
if (GetSafeHwnd() == NULL) // no Window attached
return NULL;

ASSERT_VALID(this);

HWND hWndParent = m_hWnd;//到这中断了
HWND hWndT;
while ((hWndT = AfxGetParentOwner(hWndParent)) != NULL)
hWndParent = hWndT;

return CWnd::FromHandle(hWndParent);
}

可是我不明白是什么意思!

前一个调用我自己的函数是PreTr

 

anslateMessage(MSG* pMsg)
这里面的一个控件处理回车的信息!

 

 

PreTranslateMessage(MSG* pMsg)函数出错了,忘了返回了!

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值