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

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

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




¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡HRGN¡¡¡¡¡¡¼ôÌùÇøÓò¾ä±ú¡¡¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡HTASK¡¡¡¡¶ÀÁ¢ÓÚÒÑÖ´ÐÐÈÎÎñµÄ¾ä±ú¡¡¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡HWND¡¡¡¡¡¡¡¡´°¿Ú¾ä±ú¡¡¡¡



²é¿´Win32¡¡¡¡SDKÎĵµ»òÕßä¯ÀÀWindowsÍ·Îļþ¡¡£¨Èçwindef¡£h¡¢ctype¡£hÒÔ¡¡

¼°winnt¡£hµÈ£©¿ÉÒÔ»ñµÃ¹ØÓÚÆäËüÊý¾ÝÀàÐ͵Ķ¨Ò壬ÕâЩ¶¨ÒåÍùÍùʹÓá¡

ÁË#defineºÍtypedefµÈ¹Ø¼ü×Ö¡£¡¡¡¡



ÕâÀï½âÊÍʲôÊÇÓ¦ÓóÌÐòµÄÒ»¸öʵÀý¡¡£¨instance£©¡£×î¼òµ¥µÄÀí½â¿ÉÒÔ¡¡

ÓÃÏÂÃæµÄÀý×ÓÀ´ËµÃ÷£º±ÈÈç˵ÒѾ­ÔÚWindowsÖдò¿ªÁËÒ»¸ö¡¡¡°Ð´×Ö¡¡

°å¡±£¨¿ÉÒÔÔÚ¡¡¡°¿ªÊ¼¡±²Ëµ¥Öеġ¡¡°³ÌÐò¡¡£ü¸½¼þ¡±ÏÂÃæÕÒµ½ËüµÄ¿ì½Ý·½¡¡

ʽ£©£¬ÏÖÔÚÄãÐèÒª´ÓÁíһƪÎÄÕÂÀ︴ÖÆÒ»²¿·ÖÄÚÈݵ½ÄãÕýÔÚдµÄÕâƪ¡¡

ÎÄÕÂÖУ¬ÄÇô£¬Äã¿ÉÒÔÔÙ´ò¿ªÒ»¸ö¡¡¡°Ð´×ְ塱£¨×¢Òâд×Ö°å²»ÊÇÒ»¸ö¡¡

¶àÎĵµÓ¦ÓóÌÐò£¬²»ÄÜÏñÔÚWordÖÐÄÇÑù´ò¿ª¶à¸ö²»Í¬µÄÎļþ£©£¬È»ºó¡¡

´Ó¸Ãд×Ö°åÖи´ÖÆÎļþµÄÄÚÈݵ½ÔÚÇ°Ò»¸öд×Ö°åÄÚ´ò¿ªµÄÎÄÕÂÖС£Õâ¡¡

ÀÎÒÃǶà´ÎÔËÐÐÁËͬһ¸öÓ¦ÓóÌÐò£¬ÔÚÕâ¸öÀý×ÓÖУ¬ÎÒÃǽ«Ëù´ò¿ª¡¡

µÄÁ½¸öд×Ö°å½Ð×ö¸ÃÓ¦ÓóÌÐòµÄÁ½¸öʵÀý¡£¶ÔÓÚʵÀýµÄ¸ü¾«È·¡¡£¨µ±È»¡¡

Ò²Òª±ÈÉÏÃæµÄÀý×ÓÒª¸üÄѶ®µÃ¶à£©µÄ¶¨Ò壬ÔÚWin32¡¡¡¡SDKÖÐÊÇÕâÑù¸ø³ö¡¡

µÄ£ºÊµÀý¾ÍÊÇÀàÖÐÒ»Ìض¨¶ÔÏóÀàÐ͵ÄÒ»¸öʵÀý»¯¶ÔÏó¡¡

£¨instantiation£©£¬ÈçÒ»¸öÌض¨µÄ½ø³Ì»òỊ̈߳¬ÔÚ¶àÈÎÎñ²Ù×÷ϵͳ¡¡

ÖУ¬Ò»¸öʵÀýÖ¸Ëù¼ÓÔصÄÓ¦ÓóÌÐò»ò¶¯Ì¬Á´½Ó¿âµÄÒ»·Ý¿½±´¡£¸Õ¿ªÊ¼¡¡

ʱÎÒÃÇÒ²Ðí¿´²»¶®ÕâÒ»¶¨Ò壬²»¹ýûÓйØϵ£¬ÂýÂýµÄ¾ÍÀí½âÁË¡£¡¡¡¡¡¡



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


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡125¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

l¡¡¾¡¹ÜÔÚÇ°Ãæ¸ø³öµÄWinMainº¯ÊýµÄÔ­ÐÍÖаüÀ¨ÁËÒ»¸öÃûΪ¡¡

¡¡hPrevInstanceµÄHINSTANCEÀàÐ͵IJÎÊý£¬°´ÕÕÆä×ÖÃæÉϵÄÒâÒ壬¡¡

¡¡¡¡ËüËù´«µÝµÄÊÇÓ¦ÓóÌÐòµÄÇ°Ò»¸öʵÀýµÄ¾ä±ú£¬µ«ÊÇ£¬ÔÚWin32ƽ̨¡¡

¡¡Ï£¬¸Ã²ÎÊýµÄÖµ×ÜÊÇΪNULL£¬¶ø²»¹ÜÊÇ·ñÓе±Ç°Ó¦ÓóÌÐòµÄʵÀý¡¡

¡¡ÔÚÔËÐС£ÔÚ¹ýÈ¥µÄWindows¡¡3¡£x»·¾³Ï±à³Ì£¬ÎÒÃdz£³£Ê¹ÓÃÏÂÃæµÄ¡¡

¡¡´úÂëÀ´¼ì²éÓ¦ÓóÌÐòÊÇ·ñÒÑÓÐÒ»¸öʵÀýÔÚÔËÐУº¡¡¡¡



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



l¡¡£û¡¡¡¡



l¡¡//¡¡ÔÚ´ËÌí¼ÓûÓÐÓ¦ÓóÌÐòʵÀýÔÚÔËÐÐʱµÄËùÐèÖ´ÐеĴúÂë¡£¡¡¡¡



l¡¡//¡¡¶ÔÓÚ´ó¶àÊýÓ¦ÓóÌÐò£¬ÎÒÃdz£ÔÚÕâÀï×¢²á´°¿ÚÀà¡£¡¡¡¡



l¡¡£ý¡¡¡¡



¡¡¡¡¡¡¡¡¡¡È»¶ø£¬ÔÚWin32²Ù×÷ϵͳ¡ª¡ªWindows¡¡95¡¢Windows¡¡NT¡¡ÒÔ¼°Æä¡¡

¡¡¡¡¡¡¡¡¡¡ºóÐø°æ±¾ÖУ¬ÉÏÃæµÄifÌõ¼þÌåÖеĴúÂë×ܻᱻִÐУ¬ÒòΪ¡¡

¡¡¡¡¡¡¡¡¡¡hPrevInstance×ÜÊÇΪNULL£¬Òò´Ë£¡hPrevInstanceºãΪÕæ¡£¡¡¡¡



¡¡¡¡¡¡¡¡¡¡Ö®ËùÒÔÕâÑù£¬ÊÇÒòΪÔÚWin32»·¾³Ï£¬Ã¿Ò»¸öÓ¦ÓóÌÐòµÄʵÀý¡¡

¡¡¡¡¡¡¡¡¡¡¶¼ÓÐ×ÔÒѶÀÁ¢µÄµØÖ·¿Õ¼ä£¬Òò´Ë£¬ËüÃÇÖ®¼ä»¥Ïà¶ÀÁ¢£¬»¥²»¡¡

¡¡¡¡¡¡¡¡¡¡¸ÉÉæ¡£µ«ÊÇ£¬¶ÔÓÚһЩӦÓóÌÐò£¬Ö»ÐèÒª¶øÇÒÖ»Ó¦¸ÃÓÐÒ»¸ö¡¡

¡¡¡¡¡¡¡¡¡¡ÊµÀýÔÚÔËÐС£Ê²Ã´Çé¿öÏ»áÊÇÕâÑùÄØ£¿¼ÙÉèÎÒÃDZàдÁËÒ»¸ö¡¡

¡¡¡¡¡¡¡¡¡¡Ó¦ÓóÌÐò£¬ÔÚĬÈÏÇé¿öÏ£¬¸ÃÓ¦ÓóÌÐò½«ÔÚºǫ́ÔËÐУ¬Í¨¹ý¡¡

¡¡¡¡¡¡¡¡¡¡°´Ï³ÌÐòËù¶¨ÒåµÄijһ¸öÈȼü£¬Ó¦ÓóÌÐò½«±»¼¤»î¡£¶ÔÓÚÕâ¡¡

¡¡¡¡¡¡¡¡¡¡ÑùµÄÓ¦ÓóÌÐò£¬ÔÚͬһʱ¸ÃÖ»Ó¦¸ÃÓÐÒ»¸öʵÀýÔÚÔËÐС£Áí¡¡

¡¡¡¡¡¡¡¡¡¡Í⣬ÏñWindows¡¡¡¡NTÏÂÔÚÈÎÎñ¹ÜÀíÆ÷£¬ÔÚͬһʱ¿ÌÒ²Ö»¿ÉÒÔÓС¡

¡¡¡¡¡¡¡¡¡¡Ò»¸öʵÀýÔÚÔËÐС£¡¡¡¡



¡¡¡¡¡¡¡¡¡¡Ê¹ÓÃÏÂÃæµÄ¼¼ÇÉ¿ÉÒÔ±£Ö¤ÔÚͬһʱ¿ÌÖ»ÓÐÓ¦ÓóÌÐòµÄÒ»¸öʵ¡¡

¡¡¡¡¡¡¡¡¡¡Àý£º¡¡¡¡



l¡¡#include¡¡¡¨windows¡£h¡¨¡¡¡¡



l¡¡¡¡¡¡



l¡¡#define¡¡VK_X¡¡0x58¡¡¡¡



l¡¡¡¡¡¡



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


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡126¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

l¡¡HINSTANCE¡¡hPrevInstance£»¡¡¡¡



l¡¡LPSTR¡¡lpCmdLine£»¡¡¡¡



l¡¡int¡¡nCmdShow£©¡¡¡¡



l¡¡£û¡¡¡¡



l¡¡if¡¡£¨£¡CreateMutex£¨NULL£»TRUE£»¡¨No¡¡Previous¡¡Instance£¡¡¨£©£©¡¡¡¡



l¡¡£û¡¡¡¡



l¡¡MessageBox£¨NULL£»¡¨´´½¨Mutexʧ°Ü£¡¡¨£»¡¨NoPrev¡¨£»MB_OK£üMB_SYSTEMMODAL£©£»¡¡¡¡



l¡¡return¡¡FALSE£»¡¡¡¡



l¡¡£ý¡¡¡¡



l¡¡if¡¡£¨GetLastError£¨£©==ERROR_ALREADY_EXISTS£©¡¡¡¡



l¡¡£û¡¡¡¡



l¡¡MessageBox£¨NULL£»¡¨ÒÑÓÐNoPrevµÄÒ»¸öʵÀýÔÚÔËÐУ»¡¡µ±Ç°ÊµÀý½«±»ÖÕÖ¹£¡¡¨£»¡¡¡¡



l¡¡¡¨NoPrev¡¨£»MB_OK£üMB_SYSTEMMODAL£©£»¡¡¡¡



l¡¡return¡¡FALSE£»¡¡¡¡



l¡¡£ý¡¡¡¡



l¡¡if£¨£¡RegisterHotKey£¨NULL£»0x0001£»MOD_CONTROL£üMOD_SHIFT£»VK_X£©£©¡¡¡¡



l¡¡£û¡¡¡¡



l¡¡MessageBox£¨NULL£»¡¨×¢²áÈȼüCtrl£«Shift£«Xʧ°Ü£¡¡¨£»¡¡¡¡



l¡¡¡¨NoPrev¡¨£»MB_OK£üMB_SYSTEMMODAL£©£»¡¡¡¡



l¡¡return¡¡FALSE£»¡¡¡¡



l¡¡£ý¡¡¡¡



l¡¡MessageBox£¨NULL£»¡¨NoPrevÒÑÆô¶¯£¡nn°´ÏÂÈȼüCtrl£«Shift£«X½«ÖÕÖ¹NoPrev¡£¡¨£»¡¡¡¡



l¡¡¡¨NoPrev¡¨£»MB_OK£üMB_SYSTEMMODAL£©£»¡¡¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡127¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

l¡¡MSG¡¡msg£»¡¡¡¡



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



l¡¡£û¡¡¡¡



l¡¡switch¡¡£¨msg¡£message£©¡¡¡¡



l¡¡£û¡¡¡¡



l¡¡case¡¡WM_HOTKEY£º¡¡¡¡



l¡¡if¡¡£¨int£¨msg¡£wParam£©==0x0001£©¡¡¡¡



l¡¡if¡¡£¨MessageBox£¨NULL£»¡¨ÖÕÖ¹NoPrev£¿¡¨£»¡¡¡¡



l¡¡¡¨NoPrev¡¨£»MB_YESNO£üMB_SYSTEMMODAL£©==IDYES£©¡¡¡¡



l¡¡return¡¡TRUE£»¡¡¡¡



l¡¡£ý¡¡¡¡



l¡¡£ý¡¡¡¡



l¡¡return¡¡TRUE£»¡¡¡¡



l¡¡£ý¡¡¡¡



¡¡¡¡¡¡¡¡¡¡¡¡ÉÏÃæµÄ´úÂëÊÇÒ»¸ö¹¦ÄÜÍêÕûµÄWindowsÓ¦ÓóÌÐò£¬ÆäÖÐÓõ½ÁË¡¡

¡¡¡¡¡¡¡¡¡¡¡¡Ò»Ð©µ½Ä¿Ç°ÎªÖ¹ÎÒÃÇ»¹Î´½²Êöµ½µÄÄÚÈÝ¡£³ÌÐò¶¨ÒåÁËÈȼü¡¡

¡¡¡¡¡¡¡¡¡¡¡¡Ctrl£«Shift£«X£¬µ±°´Ï¸ÃÈȼüʱ½«ÖÕÖ¹¸Ã³ÌÐò¡£ÓÉÓÚ³ÌÐòÖС¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã»ÓаüÀ¨Èκδ°¿Ú£¬Òò´ËÕâÊÇΨһµÄÒ»ÖÖÕý³£ÖÕÖ¹Ó¦ÓóÌÐò¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡µÄ·½·¨¡£µ±³ÌÐòNoPrevÕýÔÚºǫ́ÔËÐÐʱ£¬Èç¹ûÓû§°´ÏÂÁË×é¡¡

¡¡¡¡¡¡¡¡¡¡¡¡ºÏ¼üCtrl£«Shift£«X£¬Windows½«Ïò³ÌÐòÖ÷Ï̵߳ÄÏûÏ¢¶ÓÁÐÖз¢¡¡

¡¡¡¡¡¡¡¡¡¡¡¡ËÍÒ»Ìõ³ÆΪWM_HOTKEYµÄÏûÏ¢£¬µ±³ÌÐòÊÕµ½ÕâÌõÏûϢʱ£¬¼´µ¯¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡³öÁËÏûÏ¢¿òѯÎÊÊÇ·ñÖÕÖ¹NoPrev¡£ÉÏÃæµÄ˵Ã÷½«ÓÐÖúÓÚÄãÀí¡¡

¡¡¡¡¡¡¡¡¡¡¡¡½âÒÔÉÏ´úÂ룬µ«ÊÇÎÒÃÇ¡¡Ä¿Ç°¶ÔÖ¹²¢²»×öÒªÇó¡£ÕâÀֻÐèÒª¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡×¢ÒâÏÂÃæµÄ´úÂë¡¡£º¡¡¡¡



l¡¡if¡¡£¨£¡CreateMutex£¨NULL£»TRUE£»¡¨No¡¡Previous¡¡Instance£¡¡¨£©£©¡¡¡¡



l¡¡£û¡¡¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡128¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

¡¡¡¡l¡¡MessageBox£¨NULL£»¡¨´´½¨Mutexʧ°Ü£¡¡¨£»¡¨NoPrev¡¨£»MB_OK£üMB_SYSTEMMODAL£©£»¡¡¡¡



¡¡¡¡l¡¡return¡¡FALSE£»¡¡¡¡



¡¡¡¡l¡¡£ý¡¡¡¡



¡¡¡¡l¡¡if¡¡£¨GetLastError£¨£©==ERROR_ALREADY_EXISTS£©¡¡¡¡



¡¡¡¡l¡¡£û¡¡¡¡



¡¡¡¡l¡¡MessageBox£¨NULL£»¡¨ÒÑÓÐNoPrevµÄÒ»¸öʵÀýÔÚÔËÐУ»¡¡µ±Ç°ÊµÀý½«±»ÖÕÖ¹£¡¡¨£»¡¡¡¡



¡¡¡¡l¡¡¡¨NoPrev¡¨£»MB_OK£üMB_SYSTEMMODAL£©£»¡¡¡¡



¡¡¡¡l¡¡return¡¡FALSE£»¡¡¡¡



¡¡¡¡l¡¡£ý¡¡¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÔÚÉÏÃæµÄ´úÂë¡¡ÖУ¬ÎÒÃÇÏȵ÷ÓÃCreateMutex´´½¨Ò»¸öÃûΪ¡¡¡°¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡No¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡Previous¡¡¡¡¡¡¡¡¡¡Instance¡±µÄÃüÃû»¥³â¶ÔÏó£¨named¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mutex¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡object£©£¬Èç¹û¸Ã¶ÔÏóÃûÒÑ´æÔÚ£¨×¢ÒâÕâʱº¯ÊýCreateMutexÈÔ¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡·µ»ØÕæÖµTRUE£©£¬ÔòËæºóµ÷ÓõÄGetLastErrorº¯Êý½«·µ»Ø¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡ERROR_ALREADY_EXISTS£¬Óɴ˵ÃÖªÒÑÓÐÒ»¸öÓ¦ÓóÌÐòµÄʵÀý¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÕýÔÚÔËÐС£´Ó¶øµ¯³öÏûÏ¢¿òÌáÐÑÓû§£¬È»ºóÖÕÖ¹Ó¦ÓóÌÐòµÄ¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡µ±Ç°ÊµÀý¡£¡¡¡¡



ÔÚÉÏÃæµÄWinMainº¯ÊýÔ­ÐÍÖеÄÁíÒ»¸öÆæ¹ÖµÄ±êʶ·ûΪWINAPI£¬ÕâÊÇ¡¡

Ò»¸öÔÚwindef¡£hÍ·ÎļþÖж¨ÒåµÄºê£¬ÔÚµ±Ç°°æ±¾Win32¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡SDKÖУ¬¡¡

WINAPI±»¶¨ÒåΪFAR¡¡PASCAL£¬Òò´Ë£¬Ê¹ÓÃFAR¡¡PASCALͬʹÓÃWINAPI¾ß¡¡

ÓÐͬÑùµÄЧ¹û£¬µ«ÊÇ£¬ÎÒÃÇÇ¿ÁÒ½¨ÒéÄãʹÓÃWINAPIÀ´´úÌæÒÔÇ°³£Óõġ¡

FAR¡¡PASCAL£¬ÒòΪMicrosoft²»±£Ö¤FAR¡¡PASCALÄܹ»ÔÚ½«À´µÄWindows¡¡

°æ±¾ÖÐÕý³£¹¤×÷¡£ÔÚÄ¿Ç°Çé¿öÏ£¬ºÍFAR¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡PASCALµÈ¼ÛµÄ±êʶ·û»¹ÓС¡

CALLBACK¡¡¡¡¡¡¡¡¡¡¡¡¡¡£¨ÓÃÔÚÈç´°¿Ú¹ý³Ì»ò¶Ô»°¿ò¹ý³ÌÖ®ÀàµÄ»Øµ÷º¯ÊýÇ°£©ºÍ¡¡

APIENTRYµÈ¡£ËüÃǶԱàÒëÆ÷¶øÑÔ¶¼ÊÇÒ»»ØÊ£¬×îÖÕ½«±»½âÊÍΪ¡¡

__stdcall¡£ÔÚWindows»·¾³Ï±à³Ì£¬»áÓöµ½ºÜ¶àÕâÑùµÄÇé¿ö£¬×¢Òâ²»¡¡

Òª»ìÏýËüÃÇ¡£¡¡¡¡



Ò»°ãÇé¿öÏ£¬ÎÒÃÇÓ¦¸ÃÔÚWinMainº¯ÊýÖÐÍê³ÉÏÂÃæµÄ²Ù×÷£º¡¡¡¡



1¡£¡¡×¢²á´°¿ÚÀࣻ¡¡¡¡



2¡£¡¡´´½¨Ó¦ÓóÌÐòÖ÷´°¿Ú£»¡¡¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡129¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

3¡£¡¡½øÈëÓ¦ÓóÌÐòÏûϢѭ»·¡£¡¡¡¡



½ÓÏÂÀ´ÎÒÃǽ«ÒÀ´ÎÌÖÂÛÕâЩÄÚÈÝ¡£¡¡¡¡



ÔÚWindowsÓ¦ÓóÌÐòÖУ¬Ã¿Ò»¸ö´°¿Ú¶¼±ØÐë´ÓÊôÓÚÒ»¸ö´°¿ÚÀ࣬´°¿Ú¡¡

ÀඨÒåÁË´°¿ÚËù¾ßÓеÄÊôÐÔ£¬ÈçËüµÄÑùʽ¡¢Í¼±ê¡¢Êó±êÖ¸Õë¡¢²Ëµ¥Ãû¡¡

³Æ¼°´°¿Ú¹ý³ÌÃûµÈ¡£ÔÚ×¢²á´°¿ÚÀàÇ°£¬ÎÒÃÇÏÈ´´½¨Ò»¸öÀàÐÍΪ¡¡

WNDCLASSµÄ½á¹¹£¬È»ºóÔڸýṹ¶ÔÏóÖÐÌîÈë´°¿ÚÀàµÄÐÅÏ¢£¬×îºó½«Ëü¡¡

´«µÝ¸øº¯ÊýRegisterClass£¬Õû¸ö¹ý³ÌÈçÏÂÃæµÄ´úÂëËùʾ£º¡¡¡¡



WNDCLASS¡¡wc£»¡¡¡¡



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



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£©£»¡¡¡¡



ÏÂÃæ½âÊÍһϽṹWNDCLASS¡¡Öи÷³ÉÔ±µÄº¬Ò壺¡¡¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡style£º¡¡¡¡Ö¸¶¨´°¿ÚÑùʽ¡£¸ÃÑùʽ¿ÉÒÔΪһϵÁÐÆÁ¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡±ÎλµÄ°´Î»»ò£¬ÔÚÇ°ÃæµÄÀý×ÓÖУ¬CS_HREDRAW±í¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ê¾µ±´°¿ÚÓû§Çø¿í¶È¸Ä±äʱÖØ»æÕû¸ö´°¿Ú£¬¶ø¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡CS_VREDRAWÔò±íÔò±íʾµ±´°¿ÚÓû§Çø¸ß¶È¸Ä±äʱ¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÖØ»æÕû¸ö´°¿Ú¡£¶ÔÓÚÆäËüµÄ´°¿ÚÑùʽ£¬Çë²ÎÔÄ¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡SDKÖйØÓÚWNDCLASSµÄÁª»úÎĵµ¡££¨Ë³±ã˵һ¾ä£¬¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Çë×¢Òâ¸Ã³ÉÔ±µÄ´óСд£¬ËüÊÇСдµÄstyle£¬¶ø¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡130¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

²»ÊÇStyle¡££©¡¡¡¡



lpfnWndProc£º¡¡¡¡Ö¸Ïò´°¿Ú¹ý³ÌµÄÖ¸Õë¡£¹ØÓÚ´°¿Ú¡¡

¹ý³ÌÎÒÃǽ«ÒÔºóÃæµÄÄÚÈÝÖн²Êö¡£ÔÚÇ°ÃæµÄÀý×Ó¡¡

ÖУ¬ÎÒÃÇʹÓÃÃûΪWndProcµÄ´°¿Ú¹ý³Ì¡£¡¡¡¡



cbClsExtra£º¡¡Ö¸¶¨ÔÚ´°¿ÚÀà½á¹¹Ö®ºó·ÖÅäµÄ¸½¼Ó¡¡

×Ö½ÚÊý¡£²Ù×÷ϵͳ½«ÕâЩ×Ö½Ú³õʼ»¯Îª0¡£¡¡¡¡



cbWndExtra£º¡¡Ö¸¶¨ÔÚ´°¿ÚʵÀýÖ®ºó·ÖÅäµÄ¸½¼Ó×Ö¡¡

½ÚÊý¡£²Ù×÷ϵͳ½«ÕâЩ×Ö½Ú³õʼ»¯Îª0¡£Èç¹ûÓ¦¡¡

ÓóÌÐòʹÓÃWNDCLASS½á¹¹×¢²áÒ»¸öʹÓÃ×ÊÔ´Îļþ¡¡

ÖеÄCLASSÖ¸Áî´´½¨µÄ¶Ô»°¿ò£¬ÄÇôcbWndExtra¡¡

±ØÐë±»ÉèÖÃΪDLGWINDOWEXTRA¡£¡¡¡¡



hInstance¡¡£º¡¡±êʶ¸ÃÀàµÄ´°¿Ú¹ý³ÌËùÊôµÄʵÀý¡£¡¡¡¡



hIcon¡¡£º¡¡±êʶÀàͼ±ê¡£¸Ã³ÉÔ±±ØÐëΪһ¸öͼ±ê×Ê¡¡

Ô´µÄ¾ä±ú¡£Èç¹û¸Ã³ÉԱΪNULL£¬ÔòÓ¦ÓóÌÐò±ØÐë¡¡

ÔÚÓû§×îС»¯Ó¦ÓóÌÐò´°¿Úʱ»æÖÆͼ±ê¡£¡¡¡¡



hCursor¡¡£º¡¡±êʶÀàÊó±êÖ¸Õë¡£¸Ã³ÉÔ±±ØÐëΪһ¸ö¡¡

¹â±ê×ÊÔ´µÄ¾ä±ú£¬Èç¹û¸Ã³ÉԱΪNULL£¬µ±Êó±êÒÆ¡¡

½øÓ¦ÓóÌÐò´°¿ÚʱӦÓóÌÐò±ØÐëÏÔʽָ¶¨Ö¸ÕëÐΡ¡

×´¡£¡¡¡¡



hbrBackground£º¡¡¡¡±êʶÀà±³¾°Ë¢×Ó¡£¸Ã³ÉÔ±¿ÉÒÔ¡¡

Ϊһ¸öÓÃÀ´»æÖƱ³¾°µÄ»­Ë¢¾ä±ú£¬»òÕßΪ±ê׼ϵ¡¡

ͳÑÕÉ«ÖµÖ®Ò»¡£¡¡¡¡¡¡



lpszMenuName£º¡¡Ö¸ÏòÒ»‚€ÒÔNULL½áβµÄ×Ö·û´®µÄ¡¡

Ö¸Õ룬¸Ã×Ö·û´®Ö¸¶¨ÁËÀà²Ëµ¥µÄ×ÊÔ´Ãû³Æ¡£Èç¹û¡¡

ÔÚ×ÊÔ´Ãû³ÆΪµÄ²Ëµ¥ÎªÒ»¸öÕûÊýËù±êʶ£¬Ôò¿ÉÒÔ¡¡

ʹÓÃMAKEINTRESOURCEºê½«Æäת»»ÎªÒ»¸ö×Ö·û¡¡

´®£»Èç¹û¸Ã³ÉԱΪNULL£¬ÔòÊôÓÚ¸ÃÀàµÄ´°¿ÚÎÞĬ¡¡

Èϲ˵¥¡£¡¡¡¡



lpszClassName£º¡¡¡¡Ö¸ÏòÒ»¸öÒÔNULL½áβµÄ×Ö·û´®¡¡

»òΪһ¸öÔ­×Ó¡£Èç¹û¸Ã²ÎÊýΪһ¸öÔ­×Ó£¬ÄÇôËü¡¡

±ØÐëÊÇÒ»¸öʹÓÃGlobalAddAtomº¯Êý´´½¨µÄÈ«¾Ö¡¡

Ô­×Ó£»Èç¹ûΪһ¸ö×Ö·û´®£¬¸Ã×Ö·ûÆ÷½«³ÉÔ±´°¿Ú¡¡

ÀàÃû¡£¡¡¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡131¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

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



¡¡¡¡¡¡l¡¡ÕâÀï¶à´ÎÌáµ½´°¿ÚÀàÕâÒ»Ãû´Ê£¬µ«ÊÇËüºÍÇ°Ã泣˵µÄC£«£«ÀàûÓÐÈΡ¡

¡¡¡¡¡¡¡¡ºÎÁª¡¡Ïµ¡£´°¿ÚÀàÖ»±íʾÁË´°¿ÚµÄÀàÐÍ£¬ËüÍêÈ«²»ÊÇÃæÏò¶ÔÏóÒâÒå¡¡

¡¡¡¡¡¡¡¡ÉϵÄÀ࣬ÒòΪËü²»Ö§³ÖÃæÏò¶ÔÏó¼¼ÊõÖеļ̳м°¶à̬µÈ¡£¡¡¡¡



ÔÚʹÓÃRegisterClass×¢²á´°¿ÚÀà³É¹¦Ö®ºó£¬¼´¿ÉÒÔʹÓøô°¿ÚÀà´´¡¡

½¨²¢ÏÔʾӦÓóÌÐòµÄ´°¿Ú¡£Õâ¸ö¹ý³ÌÈçÏÂÃæµÄ´úÂëËùʾ£º¡¡¡¡



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



ÓÉÓÚÉÏÊö´úÂë¾ù¼ÓÉÏÁËÏ꾡µÄ×¢ÊÍ£¬ÕâÀï½ö×÷һЩ¼òµ¥µÄ˵Ã÷ºÍÇ¿¡¡

µ÷¡£CreateWindowº¯ÊýµÄÔ­ÐÍÊÇÕâÑùµÄ£º¡¡¡¡



HWND¡¡CreateWindow£¨LPCTSTR¡¡lpClassName£»¡¡//¡¡Ö¸ÏòÒÑ×¢²áµÄÀàÃû¡¡¡¡



LPCTSTR¡¡lpWindowName£»¡¡//¡¡Ö¸Ïò´°¿ÚÃû³Æ¡¡¡¡



DWORD¡¡dwStyle£»¡¡//¡¡´°¿ÚÑùʽ¡¡¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡132¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

int¡¡x£»¡¡//¡¡´°¿ÚµÄˮƽλÖá¡¡¡



int¡¡y£»¡¡//¡¡´°¿ÚµÄ´¹Ö±Î»Öá¡¡¡



int¡¡nWidth£»¡¡//¡¡´°¿Ú¿í¶È¡¡¡¡



int¡¡nHeight£»¡¡//¡¡´°¿Ú¸ß¶È¡¡¡¡



HWND¡¡hWndParent£»¡¡//¡¡¸¸´°¿Ú»òËùÓÐÕß´°¿Ú¾ä±ú¡¡¡¡



HMENU¡¡hMenu£»¡¡//¡¡²Ëµ¥¾ä±ú»ò×Ó´°¿Ú±êʶ·û¡¡¡¡



HANDLE¡¡hInstance£»¡¡//¡¡Ó¦ÓóÌÐòʵÀý¾ä±ú¡¡¡¡



LPVOID¡¡lpParam£»¡¡//¡¡Ö¸Ïò´°¿Ú´´½¨Êý¾ÝµÄÖ¸Õë¡¡¡¡



£©£»¡¡¡¡



ÔÚÇ°ÃæµÄʾÀýÖУ¬ÎÒÃǶÔx¡¢y¡¢nWidthºÍnHeight²ÎÊý¶¼´«µÝÁËͬһ¡¡

¸öÖµCW_USEDEFAULT£¬±íʾʹÓÃϵͳĬÈϵĴ°¿ÚλÖúʹóС£¬¸Ã³£Á¿¡¡

½ö¶ÔÓÚÖصþʽ´°¿Ú¡¡£¨¼´ÔÚdwStypeÑùʽÖÐÖ¸¶¨ÁË¡¡

WS_OVERLAPPEDWINDOW£¬ÁíÒ»¸ö³£Á¿WS_TILEDWINDOWÓÐ×ÅÏàͬµÄÖµ£©ÓС¡

Ч¡£¶ÔÓÚCreateWindowsº¯ÊýµÄÆäËüÄÚÈÝ£¬±ÈÈç¹ØÓÚdwStyle²ÎÊýËùÓá¡

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



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



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