我在vs2008中win32的应用程序中的createwindow()代码如下: HWND hwnd; 
hwnd=CreateWindow("c++","my winmain procedure",WS_OVERLAPPEDWINDOW, 
                  CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL,hInstance,NULL); 
if(hwnd == NULL) 

      MessageBox(NULL,"Window Creation Failed!","Error!",MB_ICONEXCLAMATION | MB_OK); 
      return 0; 
} 运行后弹出消息框“Window Creation Failed!”,请问这是什么原因,怎么个解决办法?

解决方案 »

  1.   

    "c++"这个窗体类可能写得有问题。或者我推测可能是实例句柄hInstance有问题,其他看不出什么问题。
      

  2.   

    或者说,你的窗体类——"C++"写完了之后,没有用RegisterClass注册?
      

  3.   

    注册了啊,之前的代码是这么写得:        WNDCLASS wndclass;
    wndclass.cbClsExtra=0;
    wndclass.cbWndExtra=0;
    wndclass.hbrBackground=(HBRUSH)GetStockObject(DKGRAY_BRUSH);
    wndclass.hCursor=LoadCursor(NULL,IDC_ARROW);
    wndclass.hIcon=LoadIcon(NULL,IDI_APPLICATION);
    wndclass.hInstance=hInstance;
    wndclass.lpfnWndProc=MyWinProc;
    wndclass.lpszClassName="c++";
    wndclass.lpszMenuName=NULL;
    wndclass.style=CS_HREDRAW | CS_VREDRAW; if(!RegisterClass(&wndclass))
            {
               MessageBox(NULL,"Window Registration Failed!","Error!",MB_ICONEXCLAMATION | MB_OK);
               return 0;
            }
      

  4.   

    创建之前,要注册窗口类!
    RegisterClass
      

  5.   

    问题已解决,谢谢各位,我这个问题出在了回调函数中的DefWindowProc()上