ÓÑÇéÌáʾ£ºÈç¹û±¾ÍøÒ³´ò¿ªÌ«Âý»òÏÔʾ²»ÍêÕû£¬Çë³¢ÊÔÊó±êÓÒ¼ü¡°Ë¢Ð¡±±¾ÍøÒ³£¡
µÚÈýµç×ÓÊé ·µ»Ø±¾ÊéĿ¼ ¼ÓÈëÊéÇ© ÎÒµÄÊé¼Ü ÎÒµÄÊéÇ© TXTÈ«±¾ÏÂÔØ ¡ºÊղص½ÎÒµÄä¯ÀÀÆ÷¡»

CÓïÑÔʵÀý½Ì³Ì(PDF¸ñʽ)-µÚ16²¿·Ö

¿ì½Ý²Ù×÷: °´¼üÅÌÉÏ·½Ïò¼ü ¡û »ò ¡ú ¿É¿ìËÙÉÏÏ·­Ò³ °´¼üÅÌÉ쵀 Enter ¼ü¿É»Øµ½±¾ÊéĿ¼ҳ °´¼üÅÌÉÏ·½Ïò¼ü ¡ü ¿É»Øµ½±¾Ò³¶¥²¿! Èç¹û±¾ÊéûÓÐÔĶÁÍ꣬ÏëÏ´μÌÐø½Ó×ÅÔĶÁ£¬¿ÉʹÓÃÉÏ·½ "Êղص½ÎÒµÄä¯ÀÀÆ÷" ¹¦ÄÜ ºÍ "¼ÓÈëÊéÇ©" ¹¦ÄÜ£¡


³£Á¿µÄÏêϸ²Î¿¼Çë¡¡×ÔÐвÎÔÄWin32¡¡SDKÖеÄÎĵµ¡£¡¡¡¡



¡¡¡¡l¡¡×¢Ò⣺¡¡¡¡



¡¡¡¡l¡¡¾¡¹ÜWindows¡¡95ÊÇÒ»¸ö32λµÄ²Ù×÷ϵͳ£¬µ«ÊÇ£¬ÆäÖÐÒ²±£ÁôÁ˺ܡ¡

¡¡¡¡¡¡¡¡¶à16λµÄÌØÕ÷£¬±ÈÈç˵£¬ÔÚWindows¡¡95»·¾³Ï£¬ÏµÍ³×î¶àÖ»¿ÉÒÔ¡¡

¡¡¡¡¡¡ÓÐ16384¸ö´°¿Ú¾ä±ú¡£¶øÔÚWindows¡¡NTÏÂÔòÎÞ´ËÏÞ¡£È»¶ø£¬ÊÂʵ¡¡

¡¡¡¡¡¡ÉÏ£¬¶ÔÓÚÒ»°ãµÄ×ÀÃæ¸öÈË»úϵͳÀ´Ëµ£¬ÎÒÃǼ¸ºõ²»¿ÉÄܳ¬¹ýÕâ¸ö¡¡

¡¡¡¡¡¡¡¡ÏÞÖÆ¡£¡¡¡¡



´´½¨´°¿ÚÍê³ÉÖ®ºó£¬ShowWindowsÏÔʾ¸Ã´°¿Ú£¬µÚ¶þ¸ö²ÎÊýSW_SHOW±í¡¡

ʾÔÚµ±Ç°Î»ÖÃÒÔµ±Ç°´óС¼¤»î²¢ÏÔʾÓɵÚÒ»¸ö²ÎÊý±êʶµÄ´°¿Ú¡£È»¡¡

ºó£¬º¯ÊýUpdateWindowsÏò´°¿Ú·¢ËÍÒ»ÌõWM_PAINTÏûÏ¢£¬ÒÔ֪ͨ´°¿Ú¡¡

¸üÐÂÆä¿Í»§Çø¡£ÐèҪעÒâµÄÊÇ£¬ÓÉUpdateWindows·¢Ë͵ÄWM_PAINTÏû¡¡

Ï¢½«Ö±½Ó·¢Ë͵½´°¿Ú¹ý³Ì¡¡£¨ÔÚÉÏÃæµÄÀý×ÓÖÐÊÇWndProcº¯Êý£©£¬¶ø²»ÊÇ¡¡

·¢Ë͵½½ø³ÌµÄÏûÏ¢¶ÓÁУ¬Òò´Ë£¬¾¡¹ÜÕâʱӦÓóÌÐòµÄÖ÷ÏûϢѭ»·ÉÐδ¡¡

Æô¶¯£¬µ«ÊÇ´°¿Ú¹ý³ÌÈԿɽÓÊÕµ½¸ÃWM_PAINTÏûÏ¢²¢¸üÐÂÆäÓû§Çø¡£¡¡¡¡



ÔÚÍê³ÉÉÏÃæµÄ²½ÖèÖ®ºó£¬½øÈëÓ¦ÓóÌÐòµÄÖ÷ÏûϢѭ»·¡£Ò»°ãÇé¿öÏ£¬¡¡

Ö÷ÏûϢѭ»·¾ßÓÐÏÂÃæµÄ¸ñʽ£º¡¡¡¡



while¡¡£¨GetMessage£¨&msg£»NULL£»0£»0£©£©¡¡¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡133¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

£û¡¡¡¡



TranslateMessage£¨&msg£©£»¡¡¡¡



DispatchMessage£¨&msg£©£»¡¡¡¡



£ý¡¡¡¡



Ö÷ÏûϢѭ»·ÓɶÔÈý¸öAPIº¯ÊýµÄµ÷ÓúÍÒ»¸öwhile½á¹¹×é³É¡£ÆäÖС¡

GetMessage´Óµ÷ÓÃÏ̵߳ÄÏûÏ¢¶ÓÁÐÖлñÈ¡ÏûÏ¢£¬²¢½«ÏûÏ¢·Åµ½ÓɵÚÒ»¡¡

¸ö²ÎÊýÖ¸¶¨µÄÏûÏ¢½á¹¹ÖС£Èç¹ûÖ¸¶¨Á˵ڶþ¸ö²ÎÊý£¬ÔòGetMessage»ñ¡¡

È¡ÊôÓڸòÎÊýÖ¸¶¨µÄ´°¿Ú¾ä±úËù±êʶµÄ´°¿ÚµÄÏûÏ¢£¬Èç¹û¸Ã²ÎÊýΪ¡¡

NULL£¬ÔòGetMessage»ñÈ¡ÊôÓÚµ÷ÓÃÏ̼߳°ÊôÓÚ¸ÃÏ̵߳ÄËùÓд°¿ÚµÄÏû¡¡

Ï¢¡£×îºóÁ½¸ö²ÎÊýÖ¸¶¨ÁËGetMessageËù»ñÈ¡ÏûÏ¢µÄ·¶Î§£¬Èç¹ûÁ½¸ö²Î¡¡

Êý¾ùΪ0£¬ÔòGetMessage¼ìË÷²¢»ñÈ¡ËùÓпÉÒԵõ½µÄÏûÏ¢¡£¡¡¡¡



ÔÚÉÏÃæµÄ´úÂëÖУ¬±äÁ¿msgÊÇÒ»¸öÀàÐÍΪMSGµÄ½á¹¹¶ÔÏ󣬸ýṹÌåµÄ¡¡

¶¨ÒåÈçÏ£º¡¡¡¡



typedef¡¡struct¡¡tagMSG¡¡£û¡¡//¡¡msg¡¡¡¡



HWND¡¡hwnd£»¡¡¡¡



UINT¡¡message£»¡¡¡¡



WPARAM¡¡wParam£»¡¡¡¡



LPARAM¡¡lParam£»¡¡¡¡



DWORD¡¡time£»¡¡¡¡



POINT¡¡pt£»¡¡£ý¡¡MSG£»¡¡¡¡



ÏÂÃæ½âÊ͸÷³ÉÔ±µÄº¬Ò壺¡¡¡¡



hwnd£º¡¡±êʶ»ñµÃ¸ÃÏûÏ¢µÄ´°¿Ú½ø³ÌµÄ´°¿Ú¾ä±ú¡£¡¡¡¡



message£º¡¡Ö¸¶¨ÏûÏ¢Öµ¡£¡¡¡¡



wParam£º¡¡Æ京ÒåÌض¨ÓÚ¾ßÌåµÄÏûÏ¢ÀàÐÍ¡£¡¡¡¡



lParam£º¡¡Æ京ÒåÌض¨ÓÚ¾ßÌåµÄÏûÏ¢ÀàÐÍ¡£¡¡¡¡



time£º¡¡Ö¸¶¨ÏûÏ¢·¢ËÍʱµÄʱ¼ä¡£¡¡¡¡



pt£º¡¡ÒÔÆÁÄ»×ø±ê±íʾµÄÏûÏ¢·¢ËÍʱµÄÊó±êÖ¸ÕëµÄλÖᣡ¡¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡134¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

ÔÚwhileÑ­»·ÌåÖеÄTranslateMessageº¯Êý½«ÐéÄâ°´¼üÏûÏ¢·­ÒëΪ×Ö¡¡

·ûÏûÏ¢£¬È»ºó½«ÏûÏ¢·¢Ë͵½µ÷ÓÃÏ̵߳ÄÏûÏ¢¶ÓÁУ¬ÔÚÏÂÒ»´Îµ÷Óá¡

GetMessageº¯Êý»òPeekMessageº¯Êýʱ£¬¸Ã×Ö·ûÏûÏ¢½«±»»ñÈ¡¡£¡¡

TranslateMessageº¯Êý½«WM_KEYDOWNºÍWM_KEYUPÐéÄâ°´¼ü×éºÏ·­ÒëΪ¡¡

WM_CHARºÍWM_DEADCHAR£¬½«WM_SYSKEYDOWNºÍWM_SYSKEYUPÐéÄâ°´¼ü×é¡¡

ºÏ·­ÒëΪWM_SYSCHARºÍWM_SYSREADCHAR¡£ÐèҪעÒâµÄÒ»µãÊÇ£¬½öµ±Ïà¡¡

Ó¦µÄÐéÄâ°´¼ü×éºÏÄܹ»±»·­ÒëΪËù¶ÔÓ¦µÄASCII×Ö·ûʱ£¬¡¡

TranslateMessage²Å·¢ËÍÏàÓ¦µÄWM_CHARÏûÏ¢¡£¡¡¡¡



Èç¹ûÒ»¸ö×Ö·ûÏûÏ¢±»·¢Ë͵½µ÷ÓÃÏ̵߳ÄÏûÏ¢¶ÓÁУ¬Ôò¡¡

TranlateMessage·µ»Ø·ÇÁãÖµ£¬·ñÔò·µ»ØÁãÖµ¡£¡¡¡¡



¡¡¡¡l¡¡×¢Ò⣺¡¡¡¡



¡¡¡¡l¡¡ÓëÔÚWindows¡¡95²Ù×÷ϵͳϲ»Í¬£¬ÔÚWindows¡¡NTÏ£¬¡¡

¡¡¡¡¡¡TranslateMessage¶ÔÓÚ¹¦ÄܼüºÍ¹â±ê¼ýÍ·¼üÒ²·µ»ØÒ»¸ö·ÇÁãÖµ¡£¡¡¡¡



È»ºó£¬º¯ÊýDispatchMessage½«ÊôÓÚijһ´°¿ÚµÄÏûÏ¢·¢Ë͸ô°¿ÚµÄ´°¡¡

¿Ú¹ý³Ì¡£Õâ¸ö´°¿ÚÓÉMSG½á¹¹ÖеÄhwnd³ÉÔ±Ëù±êʶµÄ¡£º¯ÊýµÄ·µ»ØÖµ¡¡

Ϊ´°¿Ú¹ý³ÌµÄ·µ»ØÖµ£¬µ«ÊÇ£¬ÎÒÃÇÒ»°ã²»Ê¹ÓÃÕâ¸ö·µ»ØÖµ¡£ÕâÀïҪע¡¡

ÒâµÄÊÇ£¬²¢²»Ò»¶¨ÊÇËùÓÐÊôÓÚijһ¸ö´°¿ÚµÄÏûÏ¢¶¼·¢Ë͸ø´°¿ÚµÄ´°¿Ú¡¡

¹ý³Ì£¬±ÈÈç¶ÔÓÚWM_TIMERÏûÏ¢£¬Èç¹ûÆälParam²ÎÊý²»ÎªNULLµÄ»°£¬ÓÉ¡¡

¸Ã²ÎÊýËùÖ¸¶¨µÄº¯Êý½«±»µ÷Ó㬶ø²»ÊÇ´°¿Ú¹ý³Ì¡£¡¡¡¡



Èç¹ûGetMessage´ÓÏûÏ¢¶ÓÁÐÖеõ½Ò»¸öWM_QUITÏûÏ¢£¬ÔòËü½«·µ»ØÒ»¡¡

¸ö¼ÙÖµ£¬´Ó¶øÍ˳öÏûϢѭ»·£¬WM_QUITÏûÏ¢µÄwParam²ÎÊýÖ¸¶¨ÁËÓÉ¡¡

PostQuitMessageº¯Êý¸ø³öµÄÍ˳öÂ룬һ°ãÇé¿öÏ£¬WinMainº¯Êý·µ»Ø¡¡

ͬһֵ¡£¡¡¡¡



ÏÂÃæÎÒÃÇÀ´¿´Ò»Ï³ÌÐòÖ÷´°¿ÚµÄ´°¿Ú¹ý³ÌWndProc¡£´°¿Ú¹ý³ÌÃûÊÇ¿É¡¡

ÒÔÓÉÓû§×ÔÐж¨Ò壬ȻºóÔÚ×¢²á´°¿ÚÀàʱÔÚWNDCLASS½á¹¹ÖÐÖ¸¶¨¡£µ«¡¡

ÊÇ£¬Ò»°ãÀ´Ëµ£¬³ÌÐò¶¼°Ñ´°¿Ú¹ý³ÌÃüÁîΪWndProcÀ´ÀàËƵÄÃû³Æ£¬Èç¡¡

MainWndProcµÈ£¬²¢²»ÊÇÒ»¶¨ÒªÕâÑù×ö£¬µ«ÊÇÕâÑùÃ÷ÏÔµÄÓÐÀûÓÚÔÄ¡¡

¶Á£¬Òò´ËÒ²ÊÇÎÒÃÇÍƼöµÄ×ö·¨¡£´°¿Ú¹ý³Ì¾ßÓÐÈçϵÄÔ­ÐÍ£º¡¡¡¡



LRESULT¡¡WINAPI¡¡WndProc£¨HWND£»UINT£»WPARAM£»LPARAM£©£»¡¡¡¡



»ò¡¡¡¡



LRESULT¡¡CALLBACK¡¡WndProc£¨HWND£»UINT£»WPARAM£»LPARAM£©£»¡¡¡¡



¶ÔÓÚ±àÒëÆ÷¶øÑÔ£¬Á½ÖÖÊéдÐÎʽ¶¼ÊÇÒ»ÑùµÄ£¬ËüÃǶ¼µÈ¼ÛÓÚ¡¡¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡135¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

long¡¡__stdcall¡¡WndProc£¨void¡¡*£»unsigned¡¡int£»unsigned¡¡int£»long£©¡¡¡¡



´°¿Ú¹ý³ÌʹÓÃÁËËĸö²ÎÊý£¬ÔÚËü±»µ÷ÓÃʱ£¨ÔÙÇ¿µ÷Ò»µã£¬Ò»°ãÇé¿ö¡¡

Ï£¬´°¿Ú¹ý³ÌÊÇÓɲÙ×÷ϵͳµ÷Ó㬶ø²»ÊÇÓÉÓ¦ÓóÌÐòµ÷Óõģ¬Õâ¾ÍÊÇ¡¡

ÎÒÃÇΪʲô½«ËüÃdzÆΪ»Øµ÷º¯ÊýµÄµÀÀí£©£¬ÕâËĸö²ÎÊý¶ÔÓ¦ÓÚËù·¢ËÍ¡¡

ÏûÏ¢½á¹¹µÄÇ°Ëĸö³ÉÔ±¡£ÏÂÃæ¸ø³öÁËÒ»¸ö´°¿Ú¹ý³ÌµÄÀý×Ó£º¡¡¡¡



//¡¡WndProc¡¡Ö÷´°¿Ú¹ý³Ì¡¡¡¡



LRESULT¡¡WINAPI¡¡WndProc¡¡£¨HWND¡¡hWnd£»¡¡¡¡



UINT¡¡msg£»¡¡¡¡



WPARAM¡¡wParam£»¡¡¡¡



LPARAM¡¡lParam£©¡¡¡¡



£û¡¡¡¡



HDC¡¡hdc£»¡¡¡¡



RECT¡¡rc£»¡¡¡¡



HPEN¡¡hPen£»hPenOld£»¡¡¡¡



HBRUSH¡¡hBrush£»hBrushOld£»¡¡¡¡



switch¡¡£¨msg£©¡¡¡¡



£û¡¡¡¡



case¡¡WM_PAINT£º¡¡¡¡



hdc=GetDC£¨hWnd£©£»¡¡¡¡



GetClientRect£¨hWnd£»&rc£©£»¡¡¡¡



hPen=CreatePen£¨PS_SOLID£»0£»RGB£¨0£»0£»0£©£©£»¡¡¡¡



hBrush=CreateHatchBrush£¨HS_DIAGCROSS£»RGB£¨0£»0£»0£©£©£»¡¡¡¡



hPenOld=SelectObject£¨hdc£»hPen£©£»¡¡¡¡



hBrushOld=SelectObject£¨hdc£»hBrush£©£»¡¡¡¡



Ellipse£¨hdc£»rc¡£left£»rc¡£top£»rc¡£right£»rc¡£bottom£©£»¡¡¡¡



SelectObject£¨hdc£»hPenOld£©£»¡¡¡¡



SelectObject£¨hdc£»hBrushOld£©£»¡¡¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡136¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

ReleaseDC£¨hWnd£»hdc£©£»¡¡¡¡



break£»¡¡¡¡



case¡¡WM_DESTROY£º¡¡¡¡



PostQuitMessage£¨0£©£»¡¡¡¡



break£»¡¡¡¡



default£º¡¡¡¡



break£»¡¡¡¡



£ý¡¡¡¡



return¡¡DefWindowProc£¨hWnd£»msg£»wParam£»lParam£©£»¡¡¡¡



£ý¡¡¡¡



Ôڸô°¿Ú¹ý³ÌÖУ¬ÎÒÃÇ´¦ÀíÁË×î»ù±¾Á½ÌõÏûÏ¢¡£¡¡¡¡



µÚÒ»ÌõÏûÏ¢ÊÇWM_PAINT£¬µ±´°¿Ú¿Í»§ÇøµÄÈ«²¿»òÒ»²¿·ÖÐèÒªÖØ»æʱ£¬¡¡

ϵͳÏò¸Ã´°¿Ú·¢Ë͸ÃÏûÏ¢¡£ÔÚÇ°ÃæµÄ¹ý³ÌÖÐÎÒÃÇÒѾ­Ìáµ½¹ý£¬ÔÚʹÓá¡

ShowWindowº¯ÊýÏÔʾ´°¿ÚÖ®ºó£¬Í¨³£Ëæ¼´µ÷Óú¯ÊýUpdateWindow£¬¸Ã¡¡

º¯ÊýÖ±½ÓÏò´°¿Ú¹ý³Ì·¢ËÍÒ»¸öWM_PAINTÏûÏ¢£¬ÒÔ֪ͨ´°¿Ú»æÖÆÆä¿Í»§¡¡

Çø¡£ÔÚ¸ÃÏûÏ¢µÄ´¦Àíº¯ÊýÖУ¬ÎÒÃÇÏÈʹÓÃGetDC»ñµÃ´°¿ÚµÄÉ豸¾ä¡¡

±ú£¬¹ØÓÚÉ豸¾ä±ú±¾ÊéºóÃ潫ҪרÃÅÉæ¼°£¬ÕâÀïÎÒÃÇÖ»ÐèÖªµÀËüÊÇÓá¡

À´µ÷Óø÷ÖÖ»æͼ·½·¨µÄ¡£È»ºóµ÷ÓÃGetClientRect»ñµÃµ±Ç°´°¿ÚµÄ¿Í¡¡

»§Çø¾ØÐΡ£½Ó×ŵ÷ÓÃCreatePen´´½¨Ò»¸öºÚÉ«»­±Ê£¬µ÷Óá¡

CreateHatchBrush´´½¨Ò»¸ö45¶È½»²æÏßµÄÌî³ä»­Ë¢£¬²¢ÇÒ¡¡

SelectObjectº¯Êý½«ËüÃÇÑ¡ÈëÉ豸ÃèÊö±íÖУ¬Ô­ÓеĻ­±ÊºÍ»­Ë¢±»±£¡¡

´æµ½hPenOldºÍhBrushOldÖУ¬ÒÔ±ãÒÔºó»Ö¸´¡£Íê³ÉÒÔÉϲ½ÖèÖ®ºó£¬µ÷¡¡

ÓÃEllipseº¯ÊýÒÔµ±Ç°¿Í»§Çø´óС»æÖÆÒ»¸öÍÖÔ²¡£×îºó£¬ÔÙÒ»´Îµ÷Óá¡

SelectObjectº¯Êý»Ö¸´Ô­ÓеĻ­±ÊºÍ»­Ë¢£¬²¢µ÷ÓÃReleaseDCÊÍ·ÅÉè¡¡

±¸ÃèÊö±í¾ä±ú¡£ÔÚÕâ¸öÏûÏ¢µÄ´¦Àí´úÂëÖУ¬ÎÒÃÇÉæ¼°µ½ÁËһЩеĸš¡

Äî¡¢Êý¾ÝÀàÐͺÍAPIº¯Êý£¬È»¶ø±¾Õ²¢²»×ÅÒâÓÚ½²ÊöÕâЩÄÚÈÝ£¬¶ÁÕß¡¡

Ò²²»±ØÉËüÃÇ£¬ÕâЩ´úÂëÖ»ÊÇΪÁËÍêÕû¸ÃʾÀý³ÌÐò²ÅʹÓõġ£¶ÔÓÚ¡¡

´°¿ÚÀ´Ëµ£¬³ýÁË¿Í»§ÇøÒÔÍâµÄÆäËüÄÚÈݽ«ÓÉϵͳ½øÐÐÖػ棬ÕâЩÄÚÈÝ¡¡

°üÀ¨´°¿Ú±êÌâÌõ¡¢±ß¿ò¡¢²Ëµ¥Ìõ¡¢¹¤¾ßÌõÒÔ¼°ÆäËü¿Ø¼þ£¬Èç¹û°üº¬ÁË¡¡

ËüÃǵĻ°¡£ÕâÖÖÖØ»æÍùÍù·¢ÉúÔÚ¸²¸ÇÓÚ´°¿ÚÉÏ·½µÄÆäËü´°¿Ú±»ÒÆ×ߣ¬¡¡

»òÕßÊÇ´°¿Ú±»Òƶ¯»ò¸Ä±ä´óСʱ¡£Òò´Ë£¬¶ÔÓÚ´ó¶àÊý´°¿Ú¹ý³ÌÀ´Ëµ£¬¡¡

WM_PAINTÏûÏ¢ÊDZØÐë´¦ÀíµÄ¡£¡¡¡¡



ÁíÒ»¸ö¶ÔÓÚ¾ø´ó¶àÊý´°¿Ú¹ý³Ì¶¼±ØÐë´¦ÀíµÄÏûÏ¢ÊÇWM_DESTROY£¬µ±´°¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡137¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

¿Ú±»³·Ïûʱ£¨±ÈÈçÓû§´Ó´°¿ÚµÄϵͳ²Ëµ¥ÖÐÑ¡ÔñÁË¡¡¡°¹Ø±Õ¡±£¬»òÕßµ¥¡¡

»÷ÁËÓұߵÄС²æ£¬¶ÔÓÚÕâЩʼþ£¬WindowsµÄĬÈÏ´¦ÀíÊǵ÷Óá¡

DestroyWindowº¯Êý³·ÏúÏàÓ¦µÄ´°¿Ú£©£¬½«»á½ÓÊÕµ½¸ÃÏûÏ¢¡£ÓÉÓÚ±¾³Ì¡¡

Ðò½öÔÚÒ»¸ö´°¿Ú£¬Òò´ËÔÚÕâÖÖÇé¿öÏÂÓ¦¸ÃÖÕÖ¹Ó¦ÓóÌÐòµÄÖ´ÐУ¬Òò´Ë¡¡

ÎÒÃǵ÷ÓÃÁËPostQuitMessageº¯Êý£¬¸Ãº¯ÊýÏòÏ̵߳ÄÏûÏ¢¶ÓÁÐÖзÅÈë¡¡

Ò»¸öWM_QUITÏûÏ¢£¬´«µÝ¸øPostQuitMessageº¯ÊýµÄ²ÎÊý½«³ÉΪ¡¡

WM_QUITÏûÏ¢µÄwParam²ÎÊý£¬ÔÚÉÏÃæµÄÀý×ÓÖУ¬¸ÃֵΪ0¡£¡¡¡¡



¶ÔÓÚÆäËüÇé¿ö£¬ÔÚÉÏÃæµÄʾÀý³ÌÐòÖÐÎÒÃÇûÓбØÒª½øÐд¦Àí£¬¡¡

WindowsרÃÅΪ´ËÌṩÁËÒ»¸öĬÈϵĴ°¿Ú¹ý³Ì£¬³ÆΪDefWindowProc£¬¡¡

ÎÒÃÇÖ»ÐèÒªÒÔWndProcµÄ²ÎÊýÔ­·â²»¶¯µÄµ÷ÓÃĬÈÏ´°¿Ú¹ý³Ì¡¡

DefWindowProc£¬²¢½«Æä·µ»ØÖµ×÷ΪWndProcµÄ·µ»ØÖµ¼´¿É¡£¡¡¡¡



½«ÉÏÃæ½²ÊöµÄËùÓÐÄÚÈÝ×ÛºÏÆðÀ´£¬ÎÒÃǾÍÒѾ­Ê¹ÓÃWin32¡¡¡¡¡¡SDKÍê³ÉÁË¡¡

Ò»¸ö¹¦Äܼòµ¥£¬µ«ÊǽṹÍêÕûµÄWin32Ó¦ÓóÌÐòÁË¡£¶ÔÓÚʹÓÃWin32¡¡¡¡

SDK±àдµÄʵÓõÄWin32Ó¦ÓóÌÐò£¬ËüÃǵĽṹÓë´ËÏà±ÈÒª¸´Ôӵö࣬¡¡

ÔÚÕâЩÇé¿öÏ£¬Ó¦ÓóÌÐòÒ²Ðí²»½ö½ö°üÀ¨Ò»¸ö´°¿Ú£¬¶ø¶ÔÓ¦µÄ´°¿Ú¹ý¡¡

³ÌÖеÄswitch½á¹¹Ò»°ãÒ²»áÊÇÒ»¸öÒì³£ÅòÕ͵ÄǶÌ×ʽswitch½á¹¹¡£Èç¡¡

´ËÅÓ´óµÄÏûÏ¢´¦Àí¹ý³Ì´ó´óÔö¼ÓÁ˳ÌÐòµ÷ÊÔºÍά»¤µÄÄѶȣ¬Ê¹ÓÃMFC¡¡

ÔòÓпÉÄÜÔںܶà³Ì¶ÈÉϼõÇáÕâÖÖ¸ºµ££¬Õâ±ãÊÇMFCΪ¹ã´ó³ÌÐòÔ±ËùÀÖ¡¡

ÓÚ½ÓÊÜ£¬ÒÔÖÁ½ñÌì³ÉΪʵ¼ÊÉϵĹ¤Òµ±ê×¼µÄÔ­Òò¡£µ«ÊÇ£¬²»¹ÜËüÈçºÎ¡¡

¸´ÔÓ£¬¹é¸ùµ½µ×£¬Ò»°ãÇé¿öÏ£¬ËüÈÔÈ»¾ßÓкÍÎÒÃǵÄÕâ¸ö¹¦Äܼòµ¥µÄ¡¡

Win32Ó¦ÓóÌÐòÒ»Ñù»òÀàËƵĽṹ¡£ÎªÁ˶ÁÕßÔĶÁºÍ·ÖÎö·½±ã£¬ÎÒÃÇ¡¡

°ÑÕâ¸ö³ÌÐòµÄÍêÕû´úÂë¸ø³öÈçÏ£º¡¡¡¡



#include¡¡¡¡¡¡



//¡¡º¯ÊýÔ­ÐÍ¡¡¡¡



int¡¡WINAPI¡¡WinMain£¨HINSTANCE£»HINSTANCE£»LPSTR£»int£©£»¡¡¡¡



LRESULT¡¡WINAPI¡¡WndProc£¨HWND£»UINT£»WPARAM£»LPARAM£©£»¡¡¡¡



//¡¡WinMain¡¡º¯Êý¡¡¡¡



int¡¡WINAPI¡¡WinMain¡¡£¨HINSTANCE¡¡hInstance£»¡¡¡¡



HINSTANCE¡¡hPrevInstance£»¡¡¡¡



LPSTR¡¡lpCmdLine£»¡¡¡¡



int¡¡nCmdShow£©¡¡¡¡



£û¡¡¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡138¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

HWND¡¡hWnd£»¡¡//¡¡Ö÷´°¿Ú¾ä±ú¡¡¡¡



MSG¡¡msg£»¡¡//¡¡´°¿ÚÏûÏ¢¡¡¡¡



WNDCLASS¡¡wc£»¡¡//¡¡´°¿ÚÀà¡¡¡¡



if¡¡£¨£¡hPrevInstance£©¡¡¡¡



£û¡¡¡¡



//¡¡Ìî³ä´°¿ÚÀàÐÅÏ¢¡¡¡¡



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=GetStockObject£¨WHITE_BRUSH£©£»¡¡¡¡



wc¡£lpszMenuName=NULL£»¡¡¡¡



wc¡£lpszClassName=¡¨SdkDemo1¡¨£»¡¡¡¡



//¡¡×¢²á´°¿ÚÀà¡¡¡¡



RegisterClass£¨&wc£©£»¡¡¡¡



£ý¡¡¡¡



//¡¡´´½¨Ó¦ÓóÌÐòÖ÷´°¿Ú¡¡¡¡



hWnd=CreateWindow¡¡£¨¡¨SdkDemo1¡¨£»¡¡//¡¡´°¿ÚÀàÃû¡¡¡¡



¡¨µÚÒ»¸öWin32¡¡SDKÓ¦ÓóÌÐò¡¨£»¡¡//¡¡´°¿Ú±êÌâ¡¡¡¡



WS_OVERLAPPEDWINDOW£»¡¡//¡¡´°¿ÚÑùʽ¡¡¡¡



CW_USEDEFAULT£»¡¡//¡¡³õʼ»¯¡¡x¡¡×ø±ê¡¡¡¡



CW_USEDEFAULT£»¡¡//¡¡³õʼ»¯¡¡y¡¡×ø±ê¡¡¡¡



CW_USEDEFAULT£»¡¡//¡¡³õʼ»¯´°¿Ú¿í¶È¡¡¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡139¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

CW_USEDEFAULT£»¡¡//¡¡³õʼ»¯´°¿Ú¸ß¶È¡¡¡¡



NULL£»¡¡//¡¡¸¸´°¿Ú¾ä±ú¡¡¡¡



NULL£»¡¡//¡¡´°¿Ú²Ëµ¥¾ä±ú¡¡¡¡



hInstance£»¡¡//¡¡³ÌÐòʵÀý¾ä±ú¡¡¡¡



NULL£©£»¡¡//¡¡´´½¨²ÎÊý¡¡¡¡



//¡¡ÏÔʾ´°¿Ú¡¡¡¡



ShowWindow£¨hWnd£»SW_SHOW£©£»¡¡¡¡



//¡¡¸üÐÂÖ÷´°¿Ú¿Í»§Çø¡¡¡¡



UpdateWindow£¨hWnd£©£»¡¡¡¡



//¡¡¿ªÊ¼ÏûϢѭ»·¡¡¡¡



while¡¡£¨GetMessage£¨&msg£»NULL£»0£»0£©£©¡¡¡¡



£û¡¡¡¡



TranslateMessage£¨&msg£©£»¡¡¡¡



DispatchMessage£¨&msg£©£»¡¡¡¡



£ý¡¡¡¡



return¡¡msg¡£wParam£»¡¡¡¡



£ý¡¡¡¡



//¡¡WndProc¡¡Ö÷´°¿Ú¹ý³Ì¡¡¡¡



LRESULT¡¡WINAPI¡¡WndProc¡¡£¨HWND¡¡hWnd£»¡¡¡¡



UINT¡¡msg£»¡¡¡¡



WPARAM¡¡wParam£»¡¡¡¡



LPARAM¡¡lParam£©¡¡¡¡



£û¡¡¡¡



HDC¡¡hdc£»¡¡¡¡



RECT¡¡rc£»¡¡¡¡



HPEN¡¡hPen£»hPenOld£»¡¡¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡140¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

HBRUSH¡¡hBrush£»hBrushOld£»¡¡¡¡



switch¡¡£¨msg£©¡¡¡¡



£û¡¡¡¡



case¡¡WM_PAINT£º¡¡¡¡



hdc=GetDC£¨hWnd£©£»¡¡¡¡



GetClientRect£¨hWnd£»&rc£©£»¡¡¡¡



hPen=CreatePen£¨PS_SOLID£»0£»RGB£¨0£»0£»0£©£©£»¡¡¡¡



hBrush=CreateHatchBrush£¨HS_DIAGCROSS£»RGB£¨0£»0£»0£©£©£»¡¡¡¡



hPenOld=SelectObject£¨hdc£»hPen£©£»¡¡¡¡



hBrushOld=SelectObject£¨hdc£»hBrush£©£»¡¡¡¡



Ellipse£¨hdc£»rc¡£left£»rc¡£top£»rc¡£right£»rc¡£bottom£©£»¡¡¡¡



SelectObject£¨hdc£»hPenOld£©£»¡¡¡¡



SelectObject£¨hdc£»hBrushOld£©£»¡¡¡¡



ReleaseDC£¨hWnd£»hdc£©£»¡¡¡¡



break£»¡¡¡¡



case¡¡WM_DESTROY£º¡¡¡¡



PostQuitMessage£¨0£©£»¡¡¡¡



break£»¡¡¡¡



default£º¡¡¡¡



break£»¡¡¡¡



£ý¡¡¡¡



return¡¡DefWindowProc£¨hWnd£»msg£»wParam£»lParam£©£»¡¡¡¡



£ý¡¡¡¡



¸ÃʾÀý´úÂëÖеÄËùÓÐÄÚÈݶ¼ÒÑÔÚÇ°Ãæ×öÁËÍêÕûµÄ½²½â£¬ÕâÀïÎÒÃǼòµ¥¡¡

µÄ˵һÏÂÈçºÎÔÚMicrosoft¡¡Developer¡¡StudioÖбàÒë¸ÃʾÀý³ÌÐò¡£Çë¡¡

°´ÏÂÃæµÄ²½Öè½øÐУº¡¡¡¡



1¡£¡¡¡¡Ñ¡ÔñFile²Ëµ¥ÏµÄNewÃüÁн¨Ò»¸öWin32¡¡¡¡Application¹¤³Ì£¬¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡141¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

ÕâÀïÎÒÃǼÙÉè¶Ô¸Ã¹¤³ÌÃüÃûΪSdkDemo1£¬¶øÊÂʵÉÏÕâÍêÈ«È¡¾öÓÚÄãµÄ¡¡

ÒâÔ¸¡£Õâ¸ö¹ý³ÌÒѾ­ÔÚ±¾ÊéµÄµ
·µ»ØĿ¼ ÉÏÒ»Ò³ ÏÂÒ»Ò³ »Øµ½¶¥²¿ ÔÞ£¨1£© ²È£¨1£©
¿ì½Ý²Ù×÷: °´¼üÅÌÉÏ·½Ïò¼ü ¡û »ò ¡ú ¿É¿ìËÙÉÏÏ·­Ò³ °´¼üÅÌÉ쵀 Enter ¼ü¿É»Øµ½±¾ÊéĿ¼ҳ °´¼üÅÌÉÏ·½Ïò¼ü ¡ü ¿É»Øµ½±¾Ò³¶¥²¿!
ÎÂÜ°Ìáʾ£º ο´Ð¡ËµµÄͬʱ·¢±íÆÀÂÛ£¬Ëµ³ö×Ô¼ºµÄ¿´·¨ºÍÆäËüС»ï°éÃÇ·ÖÏíÒ²²»´íŶ£¡·¢±íÊéÆÀ»¹¿ÉÒÔ»ñµÃ»ý·ÖºÍ¾­Ñé½±Àø£¬ÈÏÕæдԭ´´ÊéÆÀ ±»²ÉÄÉΪ¾«ÆÀ¿ÉÒÔ»ñµÃ´óÁ¿½ð±Ò¡¢»ý·ÖºÍ¾­Ñé½±ÀøŶ£¡