#include <windows.h>HWND       ghWnd=NULL;
HINSTANCE  ghInst=NULL;LRESULT  CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam);int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow);LRESULT  CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)
{
switch(message)
{
case WM_CREATE:

MessageBox(hwnd,"recieved WM_CREATE message","MESSAGE",MB_OK);
break;

case WM_DESTROY:

MessageBox(hwnd,"recieved WM_DESTROY message","MESSAGE",MB_OK);
PostQuitMessage(0);
break;

default:
return(DefWindowProc(hwnd,message,wParam,lParam)); 
}
return (FALSE);
}int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
{
    WNDCLASS wc;
MSG      msg;
ghInst   = hInstance;

wc.style =CS_HREDRAW|CS_VREDRAW;
wc.lpfnWndProc =WndProc;
wc.cbClsExtra =0;
    wc.cbWndExtra =0;
    wc.hInstance  =hInstance;
wc.hIcon      =LoadIcon(NULL,IDI_APPLICATION);
wc.hCursor    =LoadCursor(NULL,IDC_ARROW);
wc.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
wc.lpszMenuName=NULL;
wc.lpszClassName="My test Program";
RegisterClass(&wc);

ghWnd=CreateWindow(
"My test windows program",
"Welcome to Windows",
   WS_OVERLAPPEDWINDOW,
   0,
   0,
   400,
   400,
   NULL,
   0,
   hInstance,
   NULL
   );


if (NULL == ghWnd)  //★★★★为什么ghWnd 总是NULL ? Win98,VC6.0下
{
return(0);
}

ShowWindow(ghWnd,nCmdShow);
UpdateWindow(ghWnd);

while(1)
{
if (GetMessage(&msg,NULL,0,0) == FALSE )
{
return(msg.wParam);
}
TranslateMessage(&msg);
DispatchMessage(&msg);
}

}

解决方案 »

  1.   

    wc.lpszClassName="My test Program";
    "My test windows program",window class name does not match
      

  2.   

    /*------------------------------------------------------------
       HELLOWIN.C -- Displays "Hello, Windows 98!" in client area
                     (c) Charles Petzold, 1998
      ------------------------------------------------------------*/#include <windows.h>LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
                        PSTR szCmdLine, int iCmdShow)
    {
         static TCHAR szAppName[] = TEXT ("HelloWin") ;
         HWND         hwnd ;
         MSG          msg ;
         WNDCLASS     wndclass ;     wndclass.style         = CS_HREDRAW | CS_VREDRAW ;
         wndclass.lpfnWndProc   = WndProc ;
         wndclass.cbClsExtra    = 0 ;
         wndclass.cbWndExtra    = 0 ;
         wndclass.hInstance     = hInstance ;
         wndclass.hIcon         = LoadIcon (NULL, IDI_APPLICATION) ;
         wndclass.hCursor       = LoadCursor (NULL, IDC_ARROW) ;
         wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ;
         wndclass.lpszMenuName  = NULL ;
         wndclass.lpszClassName = szAppName ;     if (!RegisterClass (&wndclass))
         {
              MessageBox (NULL, TEXT ("This program requires Windows NT!"), 
                          szAppName, MB_ICONERROR) ;
              return 0 ;
         }
         
         hwnd = CreateWindow (szAppName,                  // window class name
                              TEXT ("The Hello Program"), // window caption
                              WS_OVERLAPPEDWINDOW,        // window style
                              CW_USEDEFAULT,              // initial x position
                              CW_USEDEFAULT,              // initial y position
                              CW_USEDEFAULT,              // initial x size
                              CW_USEDEFAULT,              // initial y size
                              NULL,                       // parent window handle
                              NULL,                       // window menu handle
                              hInstance,                  // program instance handle
                              NULL) ;                     // creation parameters
         
         ShowWindow (hwnd, iCmdShow) ;
         UpdateWindow (hwnd) ;
         
         while (GetMessage (&msg, NULL, 0, 0))
         {
              TranslateMessage (&msg) ;
              DispatchMessage (&msg) ;
         }
         return msg.wParam ;
    }LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
    {
         HDC         hdc ;
         PAINTSTRUCT ps ;
         RECT        rect ;
         
         switch (message)
         {
         case WM_CREATE:
              PlaySound (TEXT ("hellowin.wav"), NULL, SND_FILENAME | SND_ASYNC) ;
              return 0 ;
              
         case WM_PAINT:
              hdc = BeginPaint (hwnd, &ps) ;
              
              GetClientRect (hwnd, &rect) ;
              
              DrawText (hdc, TEXT ("Hello, Windows 98!"), -1, &rect,
                        DT_SINGLELINE | DT_CENTER | DT_VCENTER) ;
              
              EndPaint (hwnd, &ps) ;
              return 0 ;
              
         case WM_DESTROY:
              PostQuitMessage (0) ;
              return 0 ;
         }
         //return DefWindowProc (hwnd, message, wParam, lParam) ;
     return TRUE;
    }
      

  3.   

    HWND CreateWindow(
      LPCTSTR lpClassName,  // registered class name *NOTICE*
      LPCTSTR lpWindowName, // window name
      DWORD dwStyle,        // window style
      int x,                // horizontal position of window
      int y,                // vertical position of window
      int nWidth,           // window width
      int nHeight,          // window height
      HWND hWndParent,      // handle to parent or owner window
      HMENU hMenu,          // menu handle or child identifier
      HINSTANCE hInstance,  // handle to application instance
      LPVOID lpParam        // window-creation data
    );
    The registered window class name is "My test Program", but you use a unregistered window class named "My test windows program" when you create the window.
      

  4.   

    createwindo()的第一个参数必须和wc.lpszClassName="My test Program";中的名称一致。
      

  5.   

    studywhy masterz's credit standing come down?
      

  6.   

    头都大了看的
    GFA(给分啊)
      

  7.   

    蹭分
    ghWnd=CreateWindow(wc.lpszClassName,....)
    便可以了
      

  8.   

    ghWnd=CreateWindow(
    "My test windows program",//you wc.lpszClassName