因为缺少wmv文件,就把那部分的消息删除了….!
#include 
<windows.h>
//申明窗口过程函数
LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ; 
//Windows程序的入口函数
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
                    PSTR szCmdLine, 
int iCmdShow)
{
    
static TCHAR szAppName[] = TEXT ("HelloWin") ;
    HWND         hwnd ;
//定义一个Windows句柄的变量
    MSG           msg ;//定义一个消息的结构变量
    
//第一步: 定义一个窗口类的结构,此结构中的10个域描述了窗口类的特征,下面依次给这10个域赋值
    WNDCLASS     wndclass ; 
    wndclass.style    
= CS_HREDRAW | CS_VREDRAW ;//基于此窗口类创建的窗口风格
    wndclass.lpfnWndProc   = WndProc ;//指向窗口过程函数的指针
    wndclass.cbClsExtra     = 0 ;//窗口类结构的预留空间
    wndclass.cbWndExtra    = 0 ;//同上
    wndclass.hInstance      = hInstance ;//Windows程序的实例句柄,这是由编译器提供的
    
//为所有基于这个窗口类建立的窗口设置一个图标
    wndclass.hIcon  = LoadIcon (NULL, IDI_APPLICATION) ;
    
//为所有基于这个窗口类建立的窗口设置一个鼠标
    wndclass.hCursor       = LoadCursor (NULL, IDC_ARROW) ; 
    
//指定了基于这个窗口类创建的窗口背景颜色,用取得一个白色刷子的句柄来实现
    wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ;
    
//指定窗口类的菜单,用NULL赋值表示这个程序中没有菜单
    wndclass.lpszMenuName  = NULL ;
    
//指定窗口类的名称
    wndclass.lpszClassName = szAppName ;
    
    
// 第二步:向Windows注册一个窗口类,如果在Win98下运行RegisterClass函数,将返回0表明有错误发生
    if (!RegisterClass (&wndclass))
    
{
        MessageBox (NULL, TEXT (
"This program requires Windows NT!"), 
            szAppName, MB_ICONERROR) ;
        
return 0 ;
    }

    
//第三步:基于上面注册的窗口类创建一个窗口,分配一块内存保存窗口的信息
    hwnd = CreateWindow (szAppName,    // 窗口类的名称,基于这个窗口类创建窗口
        TEXT ("The Hello Program"), //窗口标题栏的名称
        WS_OVERLAPPEDWINDOW,  // 窗口的风格
        CW_USEDEFAULT,         //窗口位置的X坐标
        CW_USEDEFAULT,         //窗口位置的Y坐标
        CW_USEDEFAULT,         //窗口大小宽
        CW_USEDEFAULT,         //窗口大小高
        NULL,                   // 父窗口的句柄
        NULL,                   // 窗口菜单的句柄
        hInstance,                // Windows应用程序的实例句柄
        NULL) ;        // 创建参数的指针,可以用它访问程序中的数据
    
//第四步:      //第四步:显示窗口,在显示屏上显示窗口(ShowWindow),并给窗口客户区刷上背景颜色(UpdateWindow)
    ShowWindow (hwnd, iCmdShow) ;
    UpdateWindow (hwnd) ;
    
    
//此时窗口已经出现在显示器上等待用户的键盘和鼠标的输入,随时进行相应的处理 
    
//第五步:利用下面的循环,在消息队列中不断解析消息,然后Windows把消息发给窗口过程函数进行相应的处理。
    while (GetMessage (&msg, NULL, 00))    //从消息队列中取得消息
    {
        TranslateMessage (
&msg) ;//将msg结构传给Windows,进行一些键盘转换
        DispatchMessage (&msg) ; //Windows将消息发送给窗口过程函数(WndPro)进行相应的处理
    }

    
//上面循环的终止条件是:取得WM_QUIT消息。
    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:  //当创建一个窗口时,Windows向WndProc发送WM_CREATE
        return 0 ;
    
case WM_PAINT:   //当绘制窗口客户区域时
        hdc = BeginPaint (hwnd, &ps) ;
        GetClientRect (hwnd, 
&rect) ;
        DrawText (hdc, TEXT (
"Hello, Windows Xp!"), -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) ;//消息的默认处理
}



书上的源码...!
/*------------------------------------------------------------
   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, 00))
     
{
          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 Xp!"), -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) ;
}