因為缺少wmv文件,就把那部分的消息刪除了….!
#include 
<windows.h>
//申明窗口過程函數(shù)
LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ; 
//Windows程序的入口函數(shù)
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
                    PSTR szCmdLine, 
int iCmdShow)
{
    
static TCHAR szAppName[] = TEXT ("HelloWin") ;
    HWND         hwnd ;
//定義一個Windows句柄的變量
    MSG           msg ;//定義一個消息的結(jié)構(gòu)變量
    
//第一步: 定義一個窗口類的結(jié)構(gòu),此結(jié)構(gòu)中的10個域描述了窗口類的特征,下面依次給這10個域賦值
    WNDCLASS     wndclass ; 
    wndclass.style    
= CS_HREDRAW | CS_VREDRAW ;//基于此窗口類創(chuàng)建的窗口風(fēng)格
    wndclass.lpfnWndProc   = WndProc ;//指向窗口過程函數(shù)的指針
    wndclass.cbClsExtra     = 0 ;//窗口類結(jié)構(gòu)的預(yù)留空間
    wndclass.cbWndExtra    = 0 ;//同上
    wndclass.hInstance      = hInstance ;//Windows程序的實例句柄,這是由編譯器提供的
    
//為所有基于這個窗口類建立的窗口設(shè)置一個圖標
    wndclass.hIcon  = LoadIcon (NULL, IDI_APPLICATION) ;
    
//為所有基于這個窗口類建立的窗口設(shè)置一個鼠標
    wndclass.hCursor       = LoadCursor (NULL, IDC_ARROW) ; 
    
//指定了基于這個窗口類創(chuàng)建的窗口背景顏色,用取得一個白色刷子的句柄來實現(xiàn)
    wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ;
    
//指定窗口類的菜單,用NULL賦值表示這個程序中沒有菜單
    wndclass.lpszMenuName  = NULL ;
    
//指定窗口類的名稱
    wndclass.lpszClassName = szAppName ;
    
    
// 第二步:向Windows注冊一個窗口類,如果在Win98下運行RegisterClass函數(shù),將返回0表明有錯誤發(fā)生
    if (!RegisterClass (&wndclass))
    
{
        MessageBox (NULL, TEXT (
"This program requires Windows NT!"), 
            szAppName, MB_ICONERROR) ;
        
return 0 ;
    }

    
//第三步:基于上面注冊的窗口類創(chuàng)建一個窗口,分配一塊內(nèi)存保存窗口的信息
    hwnd = CreateWindow (szAppName,    // 窗口類的名稱,基于這個窗口類創(chuàng)建窗口
        TEXT ("The Hello Program"), //窗口標題欄的名稱
        WS_OVERLAPPEDWINDOW,  // 窗口的風(fēng)格
        CW_USEDEFAULT,         //窗口位置的X坐標
        CW_USEDEFAULT,         //窗口位置的Y坐標
        CW_USEDEFAULT,         //窗口大小寬
        CW_USEDEFAULT,         //窗口大小高
        NULL,                   // 父窗口的句柄
        NULL,                   // 窗口菜單的句柄
        hInstance,                // Windows應(yīng)用程序的實例句柄
        NULL) ;        // 創(chuàng)建參數(shù)的指針,可以用它訪問程序中的數(shù)據(jù)
    
//第四步:      //第四步:顯示窗口,在顯示屏上顯示窗口(ShowWindow),并給窗口客戶區(qū)刷上背景顏色(UpdateWindow)
    ShowWindow (hwnd, iCmdShow) ;
    UpdateWindow (hwnd) ;
    
    
//此時窗口已經(jīng)出現(xiàn)在顯示器上等待用戶的鍵盤和鼠標的輸入,隨時進行相應(yīng)的處理 
    
//第五步:利用下面的循環(huán),在消息隊列中不斷解析消息,然后Windows把消息發(fā)給窗口過程函數(shù)進行相應(yīng)的處理。
    while (GetMessage (&msg, NULL, 00))    //從消息隊列中取得消息
    {
        TranslateMessage (
&msg) ;//將msg結(jié)構(gòu)傳給Windows,進行一些鍵盤轉(zhuǎn)換
        DispatchMessage (&msg) ; //Windows將消息發(fā)送給窗口過程函數(shù)(WndPro)進行相應(yīng)的處理
    }

    
//上面循環(huán)的終止條件是:取得WM_QUIT消息。
    return msg.wParam ;
}

//定義窗口過程函數(shù),在開發(fā)中,我們主要在這個函數(shù)中添加處理各種消息的代碼。
LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)    
{
    HDC         hdc ;
    PAINTSTRUCT ps ;
    RECT        rect ;
    
    
switch (message)
    
{
    
case WM_CREATE:  //當(dāng)創(chuàng)建一個窗口時,Windows向WndProc發(fā)送WM_CREATE
        return 0 ;
    
case WM_PAINT:   //當(dāng)繪制窗口客戶區(qū)域時
        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) ;
}