因為缺少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, 0, 0)) //從消息隊列中取得消息
 {
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, 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 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) ;
}

|
|
隨筆:5
文章:28
評論:1
引用:0
| 日 | 一 | 二 | 三 | 四 | 五 | 六 |
---|
27 | 28 | 29 | 30 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
|
公告
Blog里的內(nèi)容如果沒有注明為轉(zhuǎn)載,就是原創(chuàng)文章,需要轉(zhuǎn)載的朋友請注明出處。文章中如有錯誤,請指出。轉(zhuǎn)載內(nèi)容如果有侵權(quán)行為,請與我聯(lián)系,----issac_asimoy@qq.com。
常用鏈接
留言簿(1)
隨筆分類(5)
隨筆檔案(5)
文章分類(28)
文章檔案(28)
相冊
My World
Study Web
最新隨筆
搜索
積分與排名
最新評論

閱讀排行榜
評論排行榜
|
|