鎗、裳侘、曝囃才儒加!昧字裳侘
壓夕侘狼由嶄?嗤宸担匯倖仝喟垓々嗤繁峇佩議嗤箸殻會?万酒汽仇聞喘昧字議寄弌才弼科紙崙匯狼双裳侘。艇辛參壓Windows嶄秀羨匯倖宸劔議殻會?徽頁万旺音崧妲心軟栖椎劔否叟園亟。厘錬李艇嬬範紛欺?艇音嬬酒汽仇壓WM_PAINT嶧連嶄聞喘匯倖while(TRUE)儉桟。輝隼?万嬬校峇佩?徽頁殻會繍唯峭斤凪麿嶧連議侃尖?揖扮?宸倖殻會音嬬嶄峭賜宀恷弌晒。
匯嶽辛參俊鞭議圭隈頁譜協匯倖Windows協扮匂?公完笥殻會窟僕WM_TIMER嶧連?厘繍壓 及伊嫗嶄網胎協扮匂?。斤噐耽訳WM_TIMER嶧連?艇聞喘GetDC函誼匯倖譜姥坪否?鮫匯倖昧字議裳侘?隼朔喘ReleaseDC瞥慧譜姥坪否。徽頁宸劔嗽週詰阻殻會議箸蛋來?咀葎殻會音嬬勝辛嬬酔仇鮫昧字裳侘?万駅倬吉棋WM_TIMER嶧連?遇宸嗽卆正噐狼由扮嶝議蛍掩楕。
壓Windows嶄匯協嗤載謹仝椀崔扮寂々?壓宸倖扮寂坪?侭嗤嶧連錦双葎腎?Windows峪唯壓匯倖弌儉桟嶄吉棋囚徒賜宀報炎補秘。厘断嬬倦壓椀崔扮寂坪資誼陣崙?紙崙裳侘?旺拝峪壓嗤嶧連紗秘殻會議嶧連錦双岻朔嘉瞥慧陣崙椿?宸祥頁PeekMessage痕方議朕議岻匯。和中頁PeekMessage柵出議匯倖箭徨?
念中議膨倖歌方?匯倖峺?MSG潤更議峺寞、匯倖完笥鞘凹、曾倖峙峺幣嶧連袈律?嚥GetMessage議歌方屢揖。繍及屈、眉、膨倖歌方譜協葎NULL賜0扮?燕苧厘断?斑PeekMessage勧指殻會嶄侭嗤完笥議侭嗤嶧連。泌惚勣繍嶧連貫嶧連錦双嶄評茅?夸繍PeekMessage議恷朔匯倖歌方譜協葎PM_REMOVE。泌惚艇音錬李評茅嶧連?椎担艇辛參繍宸倖歌方譜協葎PM_NOREMOVE。宸祥頁葎焚担Peek_Message頁仝裕心々遇音頁仝函誼々議圻咀?万聞誼殻會辛參殊臥殻會議錦双嶄議和匯倖嶧連?遇音糞縞評茅万。
GetMessage音繍陣崙勧指公殻會?岷欺貫殻會議嶧連錦双嶄函誼嶧連?徽頁PeekMessage悳頁羨震勧指?遇音胎匯倖嶧連頁倦竃孖。輝嶧連錦双嶄嗤匯倖嶧連扮?PeekMessage議勧指峙葎TRUE?掲0??旺拝繍梓宥械圭塀侃尖嶧連。輝錦双嶄短嗤嶧連扮?PeekMessage勧指FALSE?0?。
宸聞誼厘断辛參個亟噸宥議嶧連儉桟。厘断辛參繍泌和侭幣議儉桟?
紋算葎和中議儉桟?
廣吭?WM_QUIT嶧連瓜総翌薬竃栖殊臥。壓噸宥議嶧連儉桟嶄艇音駅宸担恬?咀葎泌惚GetMessage俊辺欺匯倖WM_QUIT嶧連?万繍勧指0?徽頁PeekMessage喘万議勧指峙栖峺幣頁倦誼欺匯倖嶧連?侭參俶勣斤WM_QUIT序佩殊臥。
泌惚PeekMessage議勧指峙葎TRUE?夸嶧連梓宥械圭塀序佩侃尖。泌惚勧指峙葎FALSE?夸壓繍陣崙勧指公Windows岻念?珊辛參恬匯泣垢恬?泌?塋樵輌燦毖羯翎慚裡??
?勝砿Windows猟周貧傍?艇音嬬喘PeekMessage貫嶧連錦双嶄評茅WM_PAINT嶧連?徽頁宸旺音頁焚担寄音阻議諒籾。穎捷?GetMessage旺音貫嶧連錦双嶄評茅WM_PAINT嶧連。貫錦双嶄評茅WM_PAINT嶧連議率匯圭隈頁綜完笥?塋焦瘕魑鎚??瘕魃箋池佩Вu眇敏墫?ValidateRect才ValidateRgn賜宀BeginPaint才EndPaint斤栖頼撹。泌惚艇壓聞喘PeekMessage貫錦双嶄函竃WM_PAINT嶧連朔?揖峠械匯劔侃尖万?椎担祥音氏嗤諒籾阻。侭音嬬恬議頁聞喘泌和侭幣議殻會旗鷹栖賠茅嶧連錦双嶄議侭嗤嶧連?
宸佩偃峰貫嶧連錦双嶄評茅WM_PAINT岻翌議侭嗤嶧連。泌惚錦双嶄嗤匯倖WM_PAINT嶧連?殻會祥氏喟垓仇尣壓while儉桟嶄。?
PeekMessage壓Windows議壼豚井云嶄曳壓Windows 98嶄勣嶷勣誼謹。宸頁咀葎Windows議16了井云聞喘議頁掲單枠幡塀議謹販暦?厘繍壓及屈噴嫗嶄網胎宸匯泣?。Windows議Terminal殻會壓貫宥儷極笥俊辺補秘朔?聞喘匯倖PeekMessage儉桟。嬉咫砿尖匂殻會聞喘宸倖室宝栖序佩嬉咫?凪万議Windows嬉咫哘喘殻會宥械脅氏聞喘匯倖PeekMessage儉桟。壓Windows 98單枠幡塀議謹販暦桟廠和?殻會辛參秀羨謹倖?殻?厘断繍及屈噴嫗心欺宸匯泣。
音砿奕劔?嗤阻PeekMessage痕方?厘断祥辛參園亟匯倖音唯仇?塋硝羯翎慚竜蝶茂髻U盡?RANDRECT泌殻會5-7嶄侭幣。
匯嶽辛參俊鞭議圭隈頁譜協匯倖Windows協扮匂?公完笥殻會窟僕WM_TIMER嶧連?厘繍壓 及伊嫗嶄網胎協扮匂?。斤噐耽訳WM_TIMER嶧連?艇聞喘GetDC函誼匯倖譜姥坪否?鮫匯倖昧字議裳侘?隼朔喘ReleaseDC瞥慧譜姥坪否。徽頁宸劔嗽週詰阻殻會議箸蛋來?咀葎殻會音嬬勝辛嬬酔仇鮫昧字裳侘?万駅倬吉棋WM_TIMER嶧連?遇宸嗽卆正噐狼由扮嶝議蛍掩楕。
壓Windows嶄匯協嗤載謹仝椀崔扮寂々?壓宸倖扮寂坪?侭嗤嶧連錦双葎腎?Windows峪唯壓匯倖弌儉桟嶄吉棋囚徒賜宀報炎補秘。厘断嬬倦壓椀崔扮寂坪資誼陣崙?紙崙裳侘?旺拝峪壓嗤嶧連紗秘殻會議嶧連錦双岻朔嘉瞥慧陣崙椿?宸祥頁PeekMessage痕方議朕議岻匯。和中頁PeekMessage柵出議匯倖箭徨?
PeekMessage (&msg, NULL, 0, 0, PM_REMOVE) ;
GetMessage音繍陣崙勧指公殻會?岷欺貫殻會議嶧連錦双嶄函誼嶧連?徽頁PeekMessage悳頁羨震勧指?遇音胎匯倖嶧連頁倦竃孖。輝嶧連錦双嶄嗤匯倖嶧連扮?PeekMessage議勧指峙葎TRUE?掲0??旺拝繍梓宥械圭塀侃尖嶧連。輝錦双嶄短嗤嶧連扮?PeekMessage勧指FALSE?0?。
宸聞誼厘断辛參個亟噸宥議嶧連儉桟。厘断辛參繍泌和侭幣議儉桟?
while (GetMessage (&msg, NULL, 0, 0))
{
TranslateMessage (&msg) ;
DispatchMessage (&msg) ;
}
return msg.wParam ;
while (TRUE)
{
if (PeekMessage (&msg, NULL, 0, 0, PM_REMOVE))
{
if (msg.message == WM_QUIT)
break ;
TranslateMessage (&msg) ;
DispatchMessage (&msg) ;
}
else
{
// 頼撹蝶乂垢恬議凪万佩殻會
}
}
return msg.wParam ;
泌惚PeekMessage議勧指峙葎TRUE?夸嶧連梓宥械圭塀序佩侃尖。泌惚勧指峙葎FALSE?夸壓繍陣崙勧指公Windows岻念?珊辛參恬匯泣垢恬?泌?塋樵輌燦毖羯翎慚裡??
?勝砿Windows猟周貧傍?艇音嬬喘PeekMessage貫嶧連錦双嶄評茅WM_PAINT嶧連?徽頁宸旺音頁焚担寄音阻議諒籾。穎捷?GetMessage旺音貫嶧連錦双嶄評茅WM_PAINT嶧連。貫錦双嶄評茅WM_PAINT嶧連議率匯圭隈頁綜完笥?塋焦瘕魑鎚??瘕魃箋池佩Вu眇敏墫?ValidateRect才ValidateRgn賜宀BeginPaint才EndPaint斤栖頼撹。泌惚艇壓聞喘PeekMessage貫錦双嶄函竃WM_PAINT嶧連朔?揖峠械匯劔侃尖万?椎担祥音氏嗤諒籾阻。侭音嬬恬議頁聞喘泌和侭幣議殻會旗鷹栖賠茅嶧連錦双嶄議侭嗤嶧連?
while (PeekMessage (&msg, NULL, 0, 0, PM_REMOVE)) ;
PeekMessage壓Windows議壼豚井云嶄曳壓Windows 98嶄勣嶷勣誼謹。宸頁咀葎Windows議16了井云聞喘議頁掲單枠幡塀議謹販暦?厘繍壓及屈噴嫗嶄網胎宸匯泣?。Windows議Terminal殻會壓貫宥儷極笥俊辺補秘朔?聞喘匯倖PeekMessage儉桟。嬉咫砿尖匂殻會聞喘宸倖室宝栖序佩嬉咫?凪万議Windows嬉咫哘喘殻會宥械脅氏聞喘匯倖PeekMessage儉桟。壓Windows 98單枠幡塀議謹販暦桟廠和?殻會辛參秀羨謹倖?殻?厘断繍及屈噴嫗心欺宸匯泣。
音砿奕劔?嗤阻PeekMessage痕方?厘断祥辛參園亟匯倖音唯仇?塋硝羯翎慚竜蝶茂髻U盡?RANDRECT泌殻會5-7嶄侭幣。
殻會5-7 RANDRECT
宸倖殻會壓孖壓議柴麻字貧峇佩誼掲械酔?心軟栖脅音崧頁匯狼双昧字裳侘阻。殻會聞喘厘壓貧中網胎狛議SetRect才FillRect痕方?功象喇C議rand痕方誼欺議昧字方畳協裳侘恫炎才糞伉鮫泡議弼科。厘繍壓及屈噴嫗嶄戻工宸倖殻會議謹?殻井云。
RANDRECT.C
/*----------------------------------------------------------------------
RANDRECT.C -- Displays Random Rectangles
(c) Charles Petzold, 1998
-----------------------------------------------------------------------*/
#include <windows.h>
#include <stdlib.h>// for the rand function
LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;
void DrawRectangle (HWND) ;
int cxClient, cyClient ;
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
PSTR szCmdLine, int iCmdShow)
{
static TCHAR szAppName[] = TEXT ("RandRect") ;
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, TEXT ("Random Rectangles"),
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, CW_USEDEFAULT,
CW_USEDEFAULT, CW_USEDEFAULT,
NULL, NULL, hInstance, NULL) ;
ShowWindow (hwnd, iCmdShow) ;
UpdateWindow (hwnd) ;
while (TRUE)
{
if (PeekMessage (&msg, NULL, 0, 0, PM_REMOVE))
{
if (msg.message == WM_QUIT)
break ;
TranslateMessage (&msg) ;
DispatchMessage (&msg) ;
}
else
DrawRectangle (hwnd) ;
}
return msg.wParam ;
}
LRESULT CALLBACK WndProc (HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam)
{
switch (iMsg)
{
case WM_SIZE:
cxClient = LOWORD (lParam) ;
cyClient = HIWORD (lParam) ;
return 0 ;
case WM_DESTROY:
PostQuitMessage (0) ;
return 0 ;
}
return DefWindowProc (hwnd, iMsg, wParam, lParam) ;
}
void DrawRectangle (HWND hwnd)
{
HBRUSHhBrush ;
HDC hdc ;
RECT rect ;
if (cxClient == 0 || cyClient == 0)
return ;
SetRect (&rect, rand () % cxClient, rand () % cyClient,
rand () % cxClient, rand () % cyClient) ;
hBrush = CreateSolidBrush (
RGB (rand () % 256, rand () % 256, rand () % 256)) ;
hdc = GetDC (hwnd) ;
FillRect (hdc, &rect, hBrush) ;
ReleaseDC (hwnd, hdc) ;
DeleteObject (hBrush) ;
}