¡¶windows»·¾³ÏÂ32λ»ã±àÓïÑÔ³ÌÐòÉè¼Æ¡·

ÏÂÔØ±¾Êé

Ìí¼ÓÊéÇ©

windows»·¾³ÏÂ32λ»ã±àÓïÑÔ³ÌÐòÉè¼Æ- µÚ16½Ú


°´¼üÅÌÉÏ·½Ïò¼ü ¡û »ò ¡ú ¿É¿ìËÙÉÏÏ·­Ò³£¬°´¼üÅÌÉ쵀 Enter ¼ü¿É»Øµ½±¾ÊéĿ¼ҳ£¬°´¼üÅÌÉÏ·½Ïò¼ü ¡ü ¿É»Øµ½±¾Ò³¶¥²¿£¡
»·¿ÉÒÔÊÇÏÂÁÐÕâÖÖÑù×Ó£º

¡¡¡¡¡¡¡¡¡£while¡¡¡¡TRUE

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡PeekMessage£»addr¡¡@stMsg£»NULL£»0£»0£»PM_REMOVE

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£if¡¡¡¡¡¡¡¡¡¡eax

¡£break¡¡¡£if¡¡@stMsg¡£message¡¡¡¡WM_QUIT

invoke¡¡TranslateMessage£»addr¡¡@stMsg

invoke¡¡DispatchMessage£»addr¡¡@stMsg

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£else

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£endif

¡¡¡¡¡¡¡¡¡£endw

PeekMessageÊÇÒ»¸öÀàËÆÓÚGetMessageµÄº¯Êý£¬Çø±ðÔÚÓÚµ±ÏûÏ¢¶ÓÁÐÀïÓÐÏûÏ¢µÄʱºò£¬PeekMessageÈ¡»ØÏûÏ¢£¬²¢ÔÚeaxÖзµ»Ø·ÇÁãÖµ£¬Ã»ÓÐÏûÏ¢µÄʱºòËü»áÖ±½Ó·µ»Ø£¬²¢ÔÚeaxÖзµ»ØÁã¡£ËùÒÔÔÚ·µ»Ø·ÇÁãÖµµÄʱºò£¬³ÌÐò¼ì²éÏûÏ¢ÊÇ·ñÊÇWM_QUIT£¬ÊÇÔò½áÊøÏûϢѭ»·£¬²»ÊÇÔòÓñê×¼Á÷³Ì´¦ÀíÏûÏ¢£»·µ»ØÁãµÄʱºò£¬±íʾÊÇ¿ÕÏÐʱ¼ä£¬³ÌÐò¾Í¿ÉÒÔ×öÆäËû¹¤×÷ÁË£¬µ«²åÈë×öÆäËû¹¤×÷µÄ´úÂëÖ´ÐÐʱ¼ä²»Äܹý³¤£¬ÒÔ²»³¬¹ý10¡¡msΪºÃ£¬·ñÔò»áÓ°ÏìÕý³£µÄÏûÏ¢´¦Àí£¬Ê¹´°¿ÚµÄ·´Ó¦¿´ÆðÀ´ºÜ³Ù¶Û¡£Èç¹û±ØÐë´¦ÀíºÜ³¤Ê±¼äµÄ¹¤×÷£¬ÄÇôӦ¸Ã½«Ëü·Ö³ÉºÜ¶àС²¿·Ö´¦Àí£¬ÒÔ±ãÓÐ×ã¹»µÄƵÂÊÀ´ÓÃPeekMessageÀ´¼ì²éÏûÏ¢¡£PeekMessageµÄÇ°Ãæ4¸ö²ÎÊýºÍGetMessageÊÇÏàͬµÄ£¬Ôö¼ÓÁË×îºóÒ»¸ö²ÎÊý£¬PM_REMOVE±íʾȡ»ØÏûÏ¢µÄͬʱ´ÓÏûÏ¢¶ÓÁÐÀïɾ³ý£¬·ñÔòÓÃPM_NOREMOVE¡£

4¡£2¡£4¡¡¡¡´°¿Ú¹ý³Ì

´°¿Ú¹ý³ÌÊǸøWindows»Øµ÷Óõģ¬Ëü±ØÐë×ñÑ­¹æ¶¨µÄ¸ñʽ¡£¶Ô´°¿Ú¹ý³ÌµÄ×Ó³ÌÐòÃû²¢Ã»Óй涨£¬¶ÔWindowsÀ´Ëµ£¬´°¿Ú¹ý³ÌµÄµØÖ·²ÅÊÇΩһÐèÒªµÄ£¬Àý×Ó³ÌÐòÖеÄ×Ó³ÌÐòÃûÊÇ_ProcWinMain£¬¶ÁÕß¿ÉÒÔ¸ÄÓÃÈκÎÃû³Æ¡£´°¿Ú¹ý³Ì×Ó³ÌÐòµÄ²ÎÊý¸ñʽΪ£º

WindowProc¡¡¡¡proc¡¡¡¡¡¡¡¡hwnd£»uMsg£»wParam£»lParam

µÚÒ»¸ö²ÎÊýÊÇ´°¿Ú¾ä±ú£¬Ò»¸ö´°¿Ú¹ý³Ì¿ÉÄÜΪ¶à¸ö»ùÓÚͬһ¸ö´°¿ÚÀàµÄ´°¿Ú·þÎñ£¬ËùÒÔWindows»Øµ÷µÄʱºò±ØÐëÖ¸³öÒª²Ù×÷µÄ´°¿Ú£¬·ñÔò´°¿Ú¹ý³Ì²»ÖªµÀҪȥ´¦ÀíÄĸö´°¿Ú£¬FirstWindow³ÌÐòÖ»½¨Á¢ÁËÒ»¸ö´°¿Ú£¬ËùÒÔÿ´Î´«µÝ¹ýÀ´µÄhwndºÍÓÃCreateWindowExº¯Êý·µ»ØµÄ´°¿Ú¾ä±úÊÇÒ»ÑùµÄ£»µÚ¶þ¸ö²ÎÊýÊÇÏûÏ¢±êʶ£¬ºóÃæÁ½¸ö²ÎÊýÊÇÏûÏ¢µÄÁ½¸ö²ÎÊý¡£Õâ4¸ö²ÎÊýºÍÏûϢѭ»·ÖÐMSG½á¹¹ÖеÄǰ4¸ö×Ö¶ÎÊÇÒ»ÑùµÄ¡£

1¡£¡¡´°¿Ú¹ý³ÌµÄ½á¹¹

´°¿Ú¹ý³ÌÒ»°ãÓÐÈçϵĽṹ£º

WindowProc¡¡¡¡¡¡¡¡¡¡¡¡¡¡proc¡¡¡¡¡¡¡¡¡¡¡¡¡¡uses¡¡ebx¡¡edi¡¡esi£»hWnd£»uMsg£»wParam£»lParam

¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡eax£»uMsg

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£if¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡eax¡¡¡¡¡¡WM_XXX

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£elseif¡¡¡¡¡¡¡¡eax¡¡¡¡¡¡WM_YYY

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£elseif¡¡¡¡¡¡¡¡eax¡¡¡¡¡¡WM_CLOSE

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡DestroyWindow£»hWinMain

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡PostQuitMessage£»NULL

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£else

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡DefWindowProc£»hWnd£»uMsg£»wParam£»lParam

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ret

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£endif

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡xor¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡eax£»eax

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ret

¡¡

WindowProc¡¡¡¡¡¡¡¡¡¡¡¡¡¡endp



¡¡
À´Ô´£ºµç×Ó¹¤Òµ³ö°æÉç¡¡×÷ÕߣºÂÞÔÆ±ò¡¡ÉÏÒ»Ò³¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡»ØÊéÄ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÏÂÒ»Ò³¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
ÉÏÒ»Ò³¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡»ØÊéÄ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÏÂÒ»Ò³¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡


µÚ4Õ¡¡µÚÒ»¸ö´°¿Ú³ÌÐò


4¡£2¡¡·ÖÎö´°¿Ú³ÌÐò£¨5£©¡¡

¡¡¡¡¡¡¡¡
¸Ã¹ý³ÌÖ÷ÒªÊǶÔuMsg²ÎÊýÖеÄÏûÏ¢±àºÅ¹¹³ÉÒ»¸ö·ÖÖ§½á¹¹£¬¶ÔÓÚÐèÒª´¦ÀíµÄÏûÏ¢·Ö±ð´¦Àí¡£²»¸ÐÐËȤµÄÏûÏ¢Ôò½»¸øDefWindowProcÀ´´¦Àí¡£

ҪעÒâµÄÊÇ´°¿Ú¹ý³ÌÖÐҪעÒâ±£´æebx£¬edi£¬esiºÍebp¼Ä´æÆ÷£¬¸ß¼¶³ÌÐòÖв»ÓÃ×Ô¼º²ÙÐÄÕâÒ»µã£¬»ã±àÖоÍҪעÒâÁË£¬WindowsÄÚ²¿½«Õâ4¸ö¼Ä´æÆ÷µ±Ö¸ÕëʹÓã¬Èç¹û·µ»ØÊ±¸Ä±äÁËËüÃǵÄÖµ£¬³ÌÐò»áÂíÉϱÀÀ£¡£procºóÃæµÄusesα²Ù×÷ÔÚ×Ó³ÌÐò½øÈëºÍÍ˳öʱ×Ô¶¯°²²åÉÏpushºÍpop¼Ä´æÆ÷Ö¸ÁÀ´±£»¤ÕâЩ¼Ä´æÆ÷µÄÖµ¡£Æäʵ²»½öÊÇÔÚ´°¿Ú¹ý³ÌÖÐÊÇÕâÑù£¬ËùÓÐÓÉÓ¦ÓóÌÐòÌṩ¸øWindowsµÄ»Øµ÷º¯Êý¶¼±ØÐë×ñÑ­Õâ¸ö¹æ¶¨£¬È綨ʱÆ÷»Øµ÷º¯ÊýµÈ£¬ËùÓÐWin32¡¡APIÒ²×ñÑ­Õâ¸ö¹æ¶¨£¬ËùÒÔµ÷ÓÃAPIºó£¬ebx£¬edi£¬esiºÍebp¼Ä´æÆ÷µÄÖµ×ÜÊDz»»á±»¸Ä±äµÄ£¬µ«ecxºÍedxµÄÖµ¾Í²»Ò»¶¨ÁË¡£

uMsg²ÎÊýÖ¸¶¨µÄÏûÏ¢ÓÐÒ»¶¨µÄ·¶Î§£¬Windows±ê×¼´°¿ÚÖÐÒѾ­Ô¤¶¨ÒåµÄÖµÔÚ0¡«03ffhÖ®¼ä£¬Óû§¿ÉÒÔ×Ô¶¨ÒåһЩÏûÏ¢£¬Í¨¹ýSendMessageµÈº¯Êý´«¸ø´°¿Ú¹ý³Ì×ö×Ô¶¨ÒåµÄ´¦Àí¹¤×÷£¬Õâʱ¿ÉÒÔʹÓõÄÖµÊÇ´Ó0400h¿ªÊ¼µÄ£¬WM_USER¾Í¶¨ÒåΪ00000400h£¬µ±³ÌÐòÔ±¶¨Òå¶à¸öÓû§ÏûÏ¢µÄʱºò£¬Ò»°ãʹÓÃWM_USER£«1£¬WM_USER£«2£¬¡­Ö®ÀàµÄ¶¨Òå·½·¨¡£

wParamºÍlParam²ÎÊýÊÇÏûÏ¢Ëù¸½´øµÄ²ÎÊý£¬ËüËæÏûÏ¢µÄ²»Í¬¶ø²»Í¬£¬¶ÔÓÚ²»Í¬µÄÏûÏ¢£¬ËüÃǵĺ¬Ò屨Ðë·Ö±ð´ÓÊÖ²áÖвéÃ÷£ºÈçWM_MOUSEMOVEÏûÏ¢ÖУ¬wParamÊDZêÖ¾£¬lParamÊÇÊó±êλÖã»¶øÔÚWM_GETTEXTÏûÏ¢ÖУ¬wParamÊÇÒª»ñÈ¡µÄ×Ö·ûÊý£¬lParamÊÇ»º³åÇøµØÖ·£»¶ø¶ÔÓÚWM_COPYÏûÏ¢À´Ëµ£¬Ëü²»ÐèÒª¶îÍâµÄÐÅÏ¢£¬ËùÒÔÁ½¸ö²ÎÊý¶¼Ã»Óж¨Òå¡£

´¦ÀíÁ˲»Í¬µÄÏûÏ¢£¬±ØÐë·µ»Ø¹æ¶¨µÄÖµ¸øWindows£¬·µ»ØÖµÒ²ÐèÒª·Ö±ð´ÓÊÖ²áÖвéÃ÷£¬±ÈÈç´¦ÀíWM_CREATEÏûÏ¢µÄʱºò£¬Èç¹û·µ»Ø0±íʾ³É¹¦£»Èç¹û³ÌÐòÎÞ·¨³õʼ»¯£¬ÈçÉêÇëÄÚ´æÊ§°Ü£¬ÄÇô¿ÉÒÔ·µ»Ø£­1£¬Windows¾Í²»»á¼ÌÐø´°¿ÚµÄ´´½¨¹ý³Ì¡£Ò»Ð©ÏûÏ¢µÄ·µ»ØÖµÔòûÓж¨Ò壬µ«´ó²¿·ÖµÄÏûÏ¢´¦ÀíÒÔºó¶¼ÒÔ·µ»Ø0±íʾ³É¹¦£¬ËùÒÔ³ÌÐòÖаÑĬÈϵķµ»ØÓï¾ä·ÅÔÚ×îºó£¬½«eaxÇåÁãºó·µ»Ø£¬Èç¹ûÔÚ´¦Àíij¸öÏûÏ¢µÄʱºòÐèÒª·µ»Ø²»Í¬µÄÖµ£¬¿ÉÒÔÔÚ·ÖÖ§Öн«eax¸³ÖµºóÖ±½ÓÓÃretÖ¸Áî·µ»Ø¡£¶ÔÓÚDefWindowProcµÄ·µ»ØÖµ£¬ÎÒÃDz»¶ÔËü½øÐиÉÉæ£¬ËùÒÔÖ±½Ó½«eax²»×öÐ޸ĵØÓÃret·µ»Ø¡£

WM_CLOSEÏûÏ¢Êǰ´ÏÂÁË´°¿ÚÓÒÉϽǵġ°¹Ø±Õ¡±°´Å¥ºóÊÕµ½µÄ£¬³ÌÐò¿ÉÒÔÔÚÕâÀï´¦ÀíºÍ¹Ø±Õ´°¿ÚÏà¹ØµÄÊÂÇ飬һ°ãÊÇÏà¹Ø×ÊÔ´µÄÊͷʤ×÷£¬ÈçÊÍ·ÅÄÚ´æ¡¢±£´æ¹¤×÷ºÍÌáʾÓû§ÊÇ·ñ±£´æ¹¤×÷µÈ£¬Èç¼Çʱ¾³ÌÐòÔÚδ±£´æµÄʱºòµ¥»÷¡°¹Ø±Õ¡±°´Å¥£¬»áÓÐÌáʾ¿òÌáʾÊÇ·ñÏȱ£´æÎļþ£¬µ¥»÷¡°È¡Ïû¡±°´Å¥µÄ»°£¬¼Çʱ¾²»»á¹Ø±Õ£¬Õâ¸ö²½Öè¾ÍÊÇÔÚWM_CLOSEÏûÏ¢´¦ÀíÖÐÍê³ÉµÄ¡£Èç¹û´¦ÀíWM_CLOSEÏûϢʱֱ½Ó·µ»Ø£¬ÄÇô´°¿Ú²»»á¹Ø±Õ£¬ÒòΪÕâ¸öÏûÏ¢Ö»ÊÇWindows֪ͨ´°¿ÚÓû§µ¥»÷ÁË¡°¹Ø±Õ¡±°´Å¥¶øÒÑ£¬´°¿Ú²ÉȡʲôÑùµÄÐÐΪÊÇ´°¿ÚµÄÊ¡£µ±´°¿Ú¾ö¶¨¹Ø±ÕµÄʱºò£¬ÐèÒª³ÌÐò×Ô¼ºµ÷ÓÃDestroyWindowÀ´´Ý»Ù´°¿Ú£¬²¢ÓÃPostQuitMessageÏòÏûϢѭ»··¢ËÍWM_QUITÏûÏ¢À´Í˳öÏûϢѭ»·¡£µ÷ÓÃPostQuitMessageʱµÄ²ÎÊýÊÇÍ˳öÂ룬¾ÍÊÇGetMessageÊÕµ½WM_QUITºóMSG½á¹¹wParam×Ö¶ÎÖеĶ«Î÷£¬ÔÚÕâÀïʹÓÃNULL¡£

¡¡PostQuitMessageÊdzõѧÕßÈÝÒ×ÒÅ©µÄº¯Êý£¬Èç¹ûûÓÐÕâÌõÓï¾ä£¬Íâ¹ÛÉÏ´°¿ÚÊDZ»´Ý»Ùµô£¬´ÓÆÁÄ»ÉÏÏûʧÁË£¬µ«Ö÷³ÌÐòÖеÄÏûϢѭ»·È´Ã»ÓÐÊÕµ½WM_QUIT£¬½á¹û»¹ÔÚÄÇÀï´òת¡£³£ÓÐÈ˵÷ÊÔµÄʱºò¶ªÁËÕâÌõÓï¾ä£¬½á¹ûÔÙÒ»´Î±àÒëµÄʱºò¾ÍÊÕµ½´íÎó£ºLINK¡¡fatal¡¡error¡¡LNK1104£º¡¡cannot¡¡open¡¡file¡¡¡¨xxx¡£exe¡¨£¬±íʾexeÎļþÏÖÔÚ²»¿Éд¡£
¡¡¡¡¡¡¡¡WindowsΪʲô²»ÔÚ´°¿Ú´Ý»ÙµÄʱºò×Ô¶¯·¢ËÍÒ»¸öWM_QUITÏûÏ¢£¬¶ø±ØÐëÓÉÓû§³ÌÐò×Ô¼ºÍ¨¹ýPostQuitMessageº¯Êý·¢ËÍÄØ£¿ÆäʵºÜºÃÀí½â£ºÒòΪÆÁÄ»ÉÏ¿ÉÄܲ»Ö¹Ò»¸ö´°¿Ú£¬WindowsÎÞ·¨È·¶¨Äĸö´°¿Ú¹Ø±Õ´ú±í×ųÌÐò½áÊø¡£ÊÔÏëһϣ¬Óû§´ò¿ªÁËÒ»¸öÊäÈë²ÎÊýµÄС´°¿Ú£¬µ¥»÷¡°È·¶¨¡±°´Å¥ºó¹Ø±Õ²¢»Øµ½Ö÷´°¿Ú£¬WindowsÈ´²»·ÖÈýÆß¶þʮһ×Ô¶¯·¢ËÍÁËÒ»¸öWM_QUIT£¬³ÌÐò¾Í»áĪÃûÆäÃîµØÍ˳öÁË¡£

2¡£¡¡ÊÕµ½ÏûÏ¢µÄ˳Ðò

´°¿Ú¹ý³ÌÊÕµ½ÏûÏ¢ÊÇÓÐÒ»¶¨Ë³ÐòµÄ£¬ÊÕµ½µÚÒ»ÌõÏûÏ¢²¢²»ÊÇ´ÓÏûϢѭ»·¿ªÊ¼ÒԺ󣬶øÊÇÔÚCreateWindowExÖоͿªÊ¼ÁË£¬ÏÔʾºÍˢд°¿ÚµÄº¯ÊýShowWindowºÍUpdateWindowÒ²Ïò´°¿Ú¹ý³Ì·¢ËÍÏûÏ¢£¬ÕâÒ»µã²¢²»Ææ¹Ö£¬ÒòΪWindowsÔÚCreateWindowExǰµ÷ÓÃRegisterClassExµÄʱºò¾ÍÒѾ­µÃµ½´°¿Ú¹ý³ÌµÄµØÖ·ÁË¡£²¢ÇÒÔÚ½¨Á¢´°¿ÚµÄ¹ý³ÌÖÐÐèÒª´°¿Ú¹ý³ÌµÄÅäºÏ¡£±í4¡£6ºÍ±í4¡£7·Ö±ðÁгöÁ˵÷ÓÃCreateWindowExºÍShowWindowµÄʱºò´°¿Ú¹ý³ÌÊÕµ½µÄÏûÏ¢¡£

±í4¡£6¡¡¡¡µ÷ÓÃCreateWindowExʱ´°¿Ú¹ý³ÌÊÕµ½µÄÏûÏ¢

ÏûÏ¢·¢Éú
¡¡Ëµ¡¡¡¡¡¡¡¡Ã÷
¡¡
WM_GETMINMAXINFO
¡¡»ñÈ¡´°¿Ú´óС£¬ÒÔ±ã³õʼ»¯
¡¡
WM_NCCREATE
¡¡·Ç¿Í»§Çø¿ªÊ¼½¨Á¢
¡¡
WM_NCCALCSIZE
¡¡¼ÆËã¿Í»§Çø´óС
¡¡
WM_CREATE
¡¡´°¿Ú½¨Á¢
¡¡

±í4¡£7¡¡¡¡µ÷ÓÃShowWindowʱ´°¿Ú¹ý³ÌÊÕµ½µÄÏûÏ¢

ÏûÏ¢·¢Éú
¡¡Ëµ¡¡¡¡¡¡¡¡Ã÷
¡¡
WM_SHOWWINDOW
¡¡ÏÔʾ´°¿Ú
¡¡
WM_WINDOWPOSCHANGING
¡¡´°¿ÚλÖÃ×¼±¸¸Ä±ä
¡¡
WM_ACTIVATEAPP
¡¡´°¿Ú×¼±¸¼¤»î
¡¡
WM_NCACTIVATE
¡¡¼¤»î״̬¸Ä±ä
¡¡
WM_GETTEXT
¡¡È¡´°¿ÚÃû³Æ£¨ÏÔʾ±êÌâÀ¸Óã©
¡¡
WM_ACTIVATE
¡¡´°¿Ú×¼±¸¼¤»î
¡¡
WM_SETFOCUS
¡¡´°¿Ú»ñµÃ½¹µã
¡¡
WM_NCPAINT
¡¡ÐèÒª»æ»­´°¿Ú±ß¿ò
¡¡
WM_ERASEBKGND
¡¡ÐèÒª²Á³ý±³¾°
¡¡
WM_WINDOWPOSCHANGED
¡¡´°¿ÚλÖÃÒѾ­¸Ä±ä
¡¡
WM_SIZE
¡¡´°¿Ú´óСÒѾ­¸Ä±ä
¡¡
WM_MOVE
¡¡´°¿ÚλÖÃÒѾ­Òƶ¯
¡¡

È»ºó³ÌÐòÖ´ÐÐUpdateWindow£¬Õâ¸öº¯ÊýÏò´°¿Ú¹ý³Ì·¢ËÍÒ»ÌõWM_PAINTÏûÏ¢£¬½Ó×Å£¬Ö÷³ÌÐò¿ªÊ¼½øÈëÏûϢѭ»·£¬Windows¸ù¾Ý¸÷ÖÖÒòËØ¸ø´°¿Ú¹ý³Ì·¢ËÍÏàÓ¦µÄÏûÏ¢£¬Ò»Ö±µ½µ÷ÓÃDestroyWindowsΪֹ¡£±í4¡£8ÁгöÁËDestoryWindowÏò´°¿Ú¹ý³Ì·¢Ë͵ÄÏûÏ¢¡£

±í4¡£8¡¡¡¡µ÷ÓÃDestroyWindowʱ´°¿Ú¹ý³ÌÊÕµ½µÄÏûÏ¢

ÏûÏ¢·¢Éú
¡¡Ëµ¡¡¡¡¡¡¡¡Ã÷
¡¡
WM_NCACTIVATE
¡¡´°¿Ú¼¤»î״̬¸Ä±ä
¡¡
WM_ACTIVATE
¡¡´°¿Ú×¼±¸·Ç¼¤»î
¡¡
WM_ACTIVATEAPP
¡¡´°¿Ú×¼±¸·Ç¼¤»î
¡¡
WM_KILLFOCUS
¡¡Ê§È¥½¹µã
¡¡
WM_DESTROY
¡¡´°¿Ú¼´½«±»´Ý»Ù
¡¡
WM_NCDESTROY
¡¡´°¿ÚµÄ·Ç¿Í»§Çø¼°ËùÓÐ×Ó´°¿ÚÒѾ­±»´Ý»Ù
¡¡

ÔÚËùÓÐÕâЩ½×¶ÎµÄÏûÏ¢ÖУ¬´ó²¿·ÖµÄÏûÏ¢¶¼²»ÐèÒª³ÌÐò×Ô¼º¹ØÐÄ£¬WindowsÖ»ÊǾ¡ÒåÎñ֪ͨ´°¿Ú¹ý³Ì¶øÒÑ£¬´°¿Ú¹ý³ÌתÊ־ͽ»¸øDefWindowProcÈ¥´¦ÀíÁË¡£³ÌÐòÐèÒª¹ØÐĵÄÏûÏ¢ÓÐÏÂÃæÕâЩ£¬¿ÉÒÔ¸ù¾ÝÐèҪѡÔñʹÓãº

¡ñ¡¡¡¡¡¡WM_CREATE¡ª¡ª·ÅÖô°¿Ú³õʼ»¯´úÂ룬È罨Á¢¸÷ÖÖ×Ó´°¿Ú£¨×´Ì¬À¸ºÍ¹¤¾ßÀ¸µÈ£©¡£

¡ñ¡¡¡¡¡¡WM_SIZE¡ª¡ª·ÅÖÃλÖð²ÅŵĴúÂ룬ÒòΪ½¨Á¢µÄ×Ó´°¿Ú¿ÉÄÜÐèÒªËæ´°¿Ú´óСµÄ¸Ä±ä¶øÒƶ¯Î»Öá£

¡ñ¡¡¡¡¡¡WM_PAINT¡ª¡ªÈç¹ûÐèÒª×Ô¼º»æÖƿͻ§Çø£¬ÔòÔÚÕâÀï°²ÅÅ´úÂë¡£

¡ñ¡¡¡¡¡¡WM_CLOSE¡ª¡ªÏòÓû§È·ÈÏÊÇ·ñÍ˳ö£¬Èç¹ûÍ˳öÔò´Ý»Ù´°¿Ú²¢·¢ËÍWM_QUITÏûÏ¢¡£

¡ñ¡¡¡¡¡¡WM_DESTROY¡ª¡ª´°¿Ú´Ý»Ù£¬ÔÚÕâÀï·ÅÖÃÊÍ·Å×ÊÔ´µÈɨβ´úÂë¡£

ÔÚÀý×Ó³ÌÐòÖУ¬ÎÒÃÇ´¦ÀíÁËWM_PAINTÏûÏ¢À´»æÖƿͻ§Çø£¬¹¦ÄܾÍÊÇÔÚ´°¿ÚµÄÖмäдÉÏÒ»ÐÐ×Ö£º¡°Win32¡¡Assembly£»¡¡Simple¡¡and¡¡powerful¡¡£¡¡±¹ý³ÌÊÇÏÈͨ¹ýBeginPaint»ñÈ¡´°¿Ú¿Í»§ÇøµÄ¡°É豸»·¾³¡±¾ä±ú£¬È»ºóͨ¹ýGetClientRect»ñÈ¡¿Í»§ÇøµÄ´óС£¬×îºóͨ¹ýDrawTextº¯Êý½«×Ö·û´®°´ÕÕÈ¡µÃµÄÆÁÄ»´óС¾ÓÖÐдµ½¡°É豸»·¾³¡±ÖУ¬Ò²¾ÍÊÇ´°¿ÚÉÏ¡£Èç¹û²»ÐèÒªÏÔʾÕâ¸ö×Ö·û´®£¬ÔòÁ¬WM_PAINTÏûÏ¢Ò²²»Óô¦Àí¡£

3¡£¡¡ÏûÏ¢µÄĬÈÏ´¦Àí¡ª¡ªDefWindowProc

WindowsÔ¤¶¨ÒåµÄÏûÏ¢·¶Î
СÌáʾ£º°´ »Ø³µ [Enter] ¼ü ·µ»ØÊéÄ¿£¬°´ ¡û ¼ü ·µ»ØÉÏÒ»Ò³£¬ °´ ¡ú ¼ü ½øÈëÏÂÒ»Ò³¡£ ÔÞһϠÌí¼ÓÊéÇ©¼ÓÈëÊé¼Ü