ÓÑÇéÌáʾ£ºÈç¹û±¾ÍøÒ³´ò¿ªÌ«Âý»òÏÔʾ²»ÍêÕû£¬Çë³¢ÊÔÊó±êÓÒ¼ü¡°Ë¢Ð¡±±¾ÍøÒ³£¡
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Ê
¿ì½Ý²Ù×÷: °´¼üÅÌÉÏ·½Ïò¼ü ¡û »ò ¡ú ¿É¿ìËÙÉÏÏ·ҳ °´¼üÅÌÉ쵀 Enter ¼ü¿É»Øµ½±¾ÊéĿ¼ҳ °´¼üÅÌÉÏ·½Ïò¼ü ¡ü ¿É»Øµ½±¾Ò³¶¥²¿!
ÎÂÜ°Ìáʾ£º ο´Ð¡ËµµÄͬʱ·¢±íÆÀÂÛ£¬Ëµ³ö×Ô¼ºµÄ¿´·¨ºÍÆäËüС»ï°éÃÇ·ÖÏíÒ²²»´íŶ£¡·¢±íÊéÆÀ»¹¿ÉÒÔ»ñµÃ»ý·ÖºÍ¾Ñé½±Àø£¬ÈÏÕæдԴ´ÊéÆÀ ±»²ÉÄÉΪ¾«ÆÀ¿ÉÒÔ»ñµÃ´óÁ¿½ð±Ò¡¢»ý·ÖºÍ¾Ñé½±ÀøŶ£¡