(Vs2005下运行)
#include <windows.h >
#include <stdio.h >LRESULT  CALLBACK  myProc(HWND        curhwnd,
                          UINT        nMsg,
                          WPARAM      wParam,
                          LPARAM      lParam
                          )
{
    switch(nMsg)
    {
    case WM_CHAR:
        char cArr[20];
        sprintf(cArr,"char is%d",wParam);
        MessageBox(curhwnd,cArr,"messageBox",0);
        break;
    default:
        return  DefWindowProc(curhwnd,nMsg,wParam,lParam);
    }
    return 0;
}int      WINAPI  WinMain(HINSTANCE  hInstance,
                         HINSTANCE  hPrevInstance,//通常为0
                         LPSTR      lpCmdLine,
                         int        nCmdshow                  
                         ){//1设计窗口
    WNDCLASS  wc;
wc.cbClsExtra=0;
wc.cbWndExtra=0;
wc.hbrBackground=(HBRUSH)GetStockObject(BLACK_BRUSH);
wc.hCursor=LoadIcon(0,IDC_CROSS);
        wc.hInstance=hInstance;//操作系统一开始便分配了一个实例号
        wc.lpfnWndProc=myProc;
    //wc.hbrBackground=(HBRUSH)GetStockObject(BLACK_BRUSH);
    wc.lpszClassName="haha!"; 
wc.lpszMenuName=0;
    wc.style=CS_HREDRAW |CS_VREDRAW;
//2注册窗口
    RegisterClass(&wc);
//3制造窗口
    HWND hWnd;
    hWnd=CreateWindow("wName","no",WS_OVERLAPPEDWINDOW,10,10,200,200,0,0,hInstance,0);
//4展示窗口
    ShowWindow(hWnd,SW_SHOWNORMAL);
//5刷新/更新窗口
    UpdateWindow(hWnd);    MSG  msg;
    while(GetMessage(&msg,0,0,0))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
   return 0;

(Vs2005下运行)
为何运行成功后什么都没有?
并没有产生窗口为何?

解决方案 »

  1.   

    第一个参数应该等于wc.lpszClassName
    hWnd=CreateWindow("haha!","no",WS_OVERLAPPEDWINDOW,10,10,200,200,0,0,hInstance,0);
      

  2.   

    #include  <windows.h  >
    #include  <stdio.h  >LRESULT  CALLBACK  myProc(HWND        curhwnd,
                                               UINT        nMsg,
                                               WPARAM      wParam,
                                               LPARAM      lParam
                                                )
    {
        switch(nMsg)
        {
        case WM_CHAR:
            char cArr[20];
            sprintf(cArr,"char is%d",wParam);
            MessageBox(curhwnd,cArr,"messageBox",0);
            break;
        default:
            return  DefWindowProc(curhwnd,nMsg,wParam,lParam);
        }
        return 0;
    }int      WINAPI  WinMain(HINSTANCE  hInstance,
                             HINSTANCE  hPrevInstance,//通常为0
                             LPSTR      lpCmdLine,
                             int        nCmdshow                  
                             ){//1设计窗口
      WNDCLASS  wc;
      wc.cbClsExtra=0;
      wc.cbWndExtra=0;
      wc.hbrBackground=(HBRUSH)GetStockObject(BLACK_BRUSH);
      wc.hCursor=LoadIcon(0,IDC_CROSS);
            wc.hInstance=hInstance;//操作系统一开始便分配了一个实例号
            wc.lpfnWndProc=myProc;
      wc.lpszClassName="haha!";
        //wc.hbrBackground=(HBRUSH)GetStockObject(BLACK_BRUSH); wc.lpszClassName="haha!"; 
        wc.lpszMenuName=0;
        wc.style=CS_HREDRAW |CS_VREDRAW;
    //2注册窗口
        RegisterClass(&wc);
    //3制造窗口
        HWND hWnd;
        hWnd=CreateWindow("haha!","no",WS_OVERLAPPEDWINDOW,10,10,200,200,0,0,hInstance,0);
    //4展示窗口
        ShowWindow(hWnd,SW_SHOWNORMAL);
    //5刷新/更新窗口
        UpdateWindow(hWnd);    MSG  msg;
        while(GetMessage(&msg,0,0,0))
        {
            TranslateMessage(&msg);
            DispatchMessage(&msg);
        }
       return 0;
    }  改正后仍然什么也看不到?
      

  3.   

     wc.hCursor=LoadIcon(0,IDC_CROSS); 
    ==================
    这是什么啊,用图标来所光标啊,哈哈,应该改成两句:
    wc.hCursor=LoadCursor(0,IDC_CROSS);
      wc.hIcon=LoadIcon(NULL,IDI_APPLICATION)
      

  4.   

    RegisterClass(&wc); 改成:
    if(!RegisterClass(&wc))
    {
      MessageBox(...);
      return -1;
    }
    试试看是不是这里的问题?