我的程序中有一个属性页中的对话框遇到MessageBox就会死机!而其他对话框却不会这样。试过换成AfxMessageBox也死机,我搞不懂为什么!请高手指教!
    我也试过在其他的带有属性页的程序中弹出消息框也没出问题。

解决方案 »

  1.   

    不太可能呀,你能把你的程序发给我一份,我帮你看看吗.
    我以前没有遇到过这样的情况呀.
    [email protected]
      

  2.   

    奇怪的问题.发一分给我看看
    [email protected]
      

  3.   

    把你的MessageBox的父窗口参数换成NULL
      

  4.   

    same to Semigod!
    paste your code here!
      

  5.   

    MessageBox()函数是需要指定父窗口指针的.就是说它的父窗口指针不能为空
      

  6.   

    我原来用的是MFC的MessageBox函数,它的参数没有父窗口指针,现在我改为API的MessageBox,把父窗口指针换成NULL还是不行,那么请问如何能获得其父窗口的指针呢?另外各位同仁,我的代码是很平常的代码,没用到什么特别之处,粘出来也只是一个按钮点击事件中的一个MessagBox("aa","bb");语句。只是我的对话框是组成一个属性页先项卡的一部分。我也很奇怪为什么这样一条用得很顺的语句会“翻船”.
      

  7.   

    WINAPI的MessageBox()不需要父窗口指针,而是句柄,可以为空
      

  8.   

    正常MSGBOX,会产生一个处理等待线程。
      

  9.   

    你用MessageBox打印多少文字呀?
      

  10.   

    MessageBox()不需要父窗口指针,而是父窗口的句柄,可以为空。
    重新编译一下,看看。
      

  11.   

    大侠们,我的MessageBox函数只是问一句:“真的要删除吗?”,就这一句文字。我重新编译过好几次了,并且换过几台机器试验,都会死机。请问如何获得父窗口的句柄呀?代码怎么写?谢谢指教,我急死了
      

  12.   

    if ( (AfxMessageBox("真的要删除吗?",
    MB_YESNO | MB_ICONQUESTION | MB_DEFBUTTON2)) == IDYES ) 
    {
    //删除!
    }
      

  13.   

    你的MessageBox是在新建的对话框类中调用的吧,否则是不可能的。
      

  14.   

    你按下Alt键试试,可能就弹出来了。
      

  15.   

    球星你说的对,我是在新建的对对话框中调用的MessageBox!
    可我按Alt键试了,还试死机!
      

  16.   

    一定是你的 MessageBox在不该弹的地方和时候弹了,跟MessageBox无关。换成非模的试试。
      

  17.   

    肯定是你把MessageBox放在了Pain里面,进入了死循环(因为每MessageBox一次都会调用PAIN一次
      

  18.   

    将所有MessageBox()替换为如下试一试。
    MessageBox(NULL, "完成!", "Message",MB_ICONEXCLAMATION | MB_OK ) ;检查你的MessageBox参数。
      

  19.   

    最好把你的debug时的汇编贴出来分析一下,估计有个什么bug在里面。
      

  20.   

    回复人: zjg751206(play程序) ( ) 信誉:100  2003-11-26 14:23:09  得分:0 
     
     
      
    我月产代码9000行,从来没见过你的问题  
     
    -----------------------------------------------------佩服!我一年也写不了这么多!!!
      

  21.   

    我刚刚才经历了这样的折磨,和你得差不多,但是我的程序一按下Alt键,就弹出MessageBox来了,分析可能是程序运行时焦点还在对话框上,所以MessageBox就弹出在对话框后面了,按下Alt键,对话框失去焦点,MessageBox就弹出来了。可是最终还是没能解决。
        不过我用了一个方法,你可以参考。如果可以的话,在谈出MessageBox的时候,把你的对话框先退出来,等需要的时候在打开。
       当然,最好是直接能解决,到时候请告知问题在那里,因为我的程序还没有直接解决。如果不行可以这样试试。
        Email:[email protected]
      

  22.   

    我也遇到过这样的情况,有些是与盗版有关的,不知你的是那个版本
    你有一个对话框代替msgbox试试
      

  23.   

    如下使用试一下:
    {
    static bool bDialog=false;
    if(bDialog==false)
    {
    bDialog=true;
    MessageBox(...);
    bDialog=false;
    }
    }
      

  24.   

    我用了N年的MessageBox,未遇到过这个问题。