我也碰到过
不知道原因
但知道解决
用AfxMessageBox就可以了

解决方案 »

  1.   

    MessageBox在Windows内部有很多版本,如MessageBoxA等等,主要是为了适应不同的字符集,主要是Unicode和ASCII两种。
      

  2.   

    ::MessageBox(NULL,TEXT("Help, Something went wrong"),TEXT("ERROR"),MB_ICONSTOP);
    这样就可以了
      

  3.   

    MessageBox()是CWnd类的成员函数,AfxMessageBox()是全局函数
      

  4.   

    或者MessageBox(GetActiveWindow(),"Help,Something went wrong","Error!",MB_OK|MB_ICONSTOP);
      

  5.   

    用MessageBox(NULL,"Help, Something went wrong.", 
    "Error",MB_ICONERROR | MB_OK);
    因为前一语句实际上是调用了CWnd类的成员函数,而非Windows API
    函数,API函数要多一个参数,指明父窗口。
    你如果把前一个MessageBox()前面加上“::”也就能发现出问题啦。
    因为你加上“::”就是调用Win API函数啦,要多一个参数。
      

  6.   

    MessageBox()有很多重载形式,Windows有API形式的MessageBox(),::MessageBox(NULL,TEXT("Help, Something went wrong"),TEXT("ERROR"),MB_ICONSTOP);中的::表示加载的是API中的MessageBox()函数,它比CWnd中的MessageBox()多出一个参数即产生消息对话框的窗口。COleControl中定义的MessageBox()实际上是一个Unicode版本,因为控件要用于多种系统和多种语言中,你只要把字符串转换成Unicode字符串就行了。_T("字符串")或TEXT("字符串")