£»********************************************************************
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡¡¡CreateWindowEx£»WS_EX_CLIENTEDGE£»
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡offset¡¡szClassName£»offset¡¡szCaptionMain£»
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡WS_OVERLAPPEDWINDOW£»
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡100£»100£»400£»300£»
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡NULL£»hMenu£»hInstance£»NULL
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡¡¡¡¡¡¡¡¡¡¡hWinMain£»eax
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡¡¡ShowWindow£»hWinMain£»SW_SHOWNORMAL
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡¡¡UpdateWindow£»hWinMain
£»********************************************************************
£»¡¡ÏûϢѻ·
£»********************************************************************
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£while¡¡¡¡¡¡TRUE
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡¡¡GetMessage£»addr¡¡@stMsg£»NULL£»0£»0
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£break¡¡¡¡¡¡¡£if¡¡eax¡¡¡¡0
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡¡¡TranslateAccelerator£»hWinMain£»
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡@hAccelerator£»addr¡¡@stMsg
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£if¡¡¡¡¡¡¡¡¡¡¡¡eax¡¡¡¡0
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡TranslateMessage£»addr¡¡@stMsg
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡DispatchMessage£»addr¡¡@stMsg
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£endif
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£endw
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ret
¡¡
_WinMain¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡endp
£»¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·
start£º
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡call¡¡¡¡¡¡¡¡¡¡_WinMain
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡¡¡ExitProcess£»NULL
£»¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡end¡¡¡¡¡¡¡¡¡¡¡¡start
¡¡
À´Ô´£ºµç×Ó¹¤Òµ³ö°æÉç¡¡×÷ÕߣºÂÞÔÆ±ò¡¡ÉÏÒ»Ò³¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡»ØÊéÄ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÏÂÒ»Ò³¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
ÉÏÒ»Ò³¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡»ØÊéÄ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÏÂÒ»Ò³¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡
µÚ5Õ¡¡Ê¹ÓÃ×ÊÔ´
5¡£1¡¡²Ëµ¥ºÍ¼ÓËÙ¼ü£¨5£©
¡¡¡¡¡¡¡¡
1¡£¡¡¼ÓÔØ²Ëµ¥
ÔÚ´°¿ÚÖмÓÔØ²Ëµ¥µÄ·½·¨ÔÚµÚ4ÕÂÒѾÌá¼°£¬·½·¨ÓÐÁ½¸ö£ºÒ»ÊÇÔÚ×¢²á´°¿ÚÀàµÄʱºòÖ¸¶¨ÀàµÄĬÈϲ˵¥£»¶þÊÇÔÚ½¨Á¢´°¿ÚµÄʱºòÔÚ²ÎÊýÖÐÖ¸¶¨²Ëµ¥¾ä±ú¡£Menu¡£asm³ÌÐòÖÐÓõÄÊǵÚ2ÖÖ·½·¨£º
invoke¡¡¡¡¡¡CreateWindowEx£»WS_EX_CLIENTEDGE£»
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡offset¡¡szClassName£»offset¡¡szCaptionMain£»
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡WS_OVERLAPPEDWINDOW£»
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡100£»100£»400£»300£»
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡NULL£»hMenu£»hInstance£»NULL
ÔÚ²ÎÊýÖÐÖ¸³öÁËhMenu¡£²»¹ÜÓÃÄÄÖÖ·½·¨£¬Ê×Ïȶ¼±ØÐëʹÓÃLoadMenuº¯ÊýÀ´»ñÈ¡²Ëµ¥¾ä±úhMenu£¬ÈçÏÂÃæµÄÓï¾ä£º
invoke¡¡¡¡LoadMenu£»hInstance£»IDM_MAIN
mov¡¡hMenu£»eax
Õâ¸öº¯ÊýµÄµÚ1¸ö²ÎÊýÊÇÓÃGetModuleHandle»ñÈ¡µÄʵÀý¾ä±ú£¬µÚ2¸ö²ÎÊýÖ¸¶¨ÐèҪװÈëµÄ²Ëµ¥×ÊÔ´ID£¬º¯Êý·µ»Ø²Ëµ¥¾ä±ú¡£Ôڵõ½²Ëµ¥¾ä±úÒÔºó£¬ÎÒÃÇÏȰÑËü·ÅÈëhMenu±äÁ¿±£´æÆðÀ´ÒÔ±ãºóÓá£
µ±×ÊÔ´ÎļþÖÐÓÃ×Ö·û´®ÎªÃû³Æ¶¨Òå²Ëµ¥¶ø²»ÊÇÓÃÊýÖµµÄʱºò£¬ÀýÈ磺
MainMenu¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡menu¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//¶¨Òå²Ëµ¥ÃûΪ×Ö·û´®¡°MainMenu¡±
begin
¡£¡£¡£
end
ÄÇôÔÚ³ÌÐòÖоͱØÐëÓÃ×Ö·û´®Ö¸Õë´úÌæ²Ëµ¥ID×ö²ÎÊý£º
szMenu¡¡¡¡¡¡¡¡¡¡¡¡¡¨MainMenu¡¨£»0¡¡¡¡¡¡¡¡¡¡¡¡¡¡£»ÔÚÊý¾Ý¶ÎÖж¨Òå²Ëµ¥Ãû³Æ×Ö·û´®
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£¡£¡£
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡LoadMenu£»hInstance£»addr¡¡szMenu¡¡¡¡£»ÔÚ³ÌÐòÖÐ×°ÔØ
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡¡¡¡¡¡¡¡¡hMenu£»eax
¡¡ÓÃ×Ö·û´®ÎªÃû³Æ¶¨Òå×ÊÔ´£¬ÔÚ×ÊÔ´×°ÔØº¯ÊýLoadXXXXÖÐÓÃ×Ö·û´®Ö¸Õë×ö²ÎÊý×°È룬Õâʵ¼ÊÉÏÊÇÒ»¸öͨÓõķ½·¨£¬²»½öÊÊÓÃÓڲ˵¥×ÊÔ´£¬¶ÔÓÚÆäËûÀà±ðµÄ×ÊÔ´Ò²ÊÇÊÊÓõġ£ÔÚÆäËû×ÊÔ´µÄ½éÉÜÖоͲ»ÔÙÁíÍâ˵Ã÷ÁË¡£
2¡£¡¡¼ÓÔØ¼ÓËÙ¼ü
ºÍ²Ëµ¥Ò»Ñù£¬¼ÓËÙ¼üÔÚʹÓÃǰҲҪװÈ룬²ÎÊýͬÑùÊÇÔÚ×ÊÔ´½Å±¾ÎļþÖж¨ÒåµÄ¼ÓËÙ¼üID£¬³ÌÐòÖжÔÓ¦µÄÓï¾äÊÇ£º
invoke¡¡¡¡LoadAccelerators£»hInstance£»IDA_MAIN
mov¡¡¡¡¡¡¡¡¡¡@hAccelerator£»eax
ÆäʵÎÒÃÇ×Ô¼ºÔÚ³ÌÐòÖÐÒ²¿ÉÒԺܷ½±ãµØÊµÏÖ¼ÓËÙ¼ü¹¦ÄÜ£¬·½·¨ÊÇ£ºÔÚWM_KEYDOWNÏûÏ¢ÖÐÅжϼüÅÌÏûÏ¢²¢°´ÕÕ×Ô¶¨ÒåµÄÂß¼½øÐд¦Àí£¬Ê¹ÓüÓËÙ¼üʵ¼ÊÉÏÊÇÈÃWindowsÌæÎÒÃÇÍê³ÉÕâ¸ö¹¦ÄÜ£¬WindowsʵÏֵķ½·¨ÕýÊÇÔÚÏûϢѻ·Öмì²éWM_KEYDOWNºÍWM_SYSKEYDOWNÏûÏ¢¡£ÏÂÃæÊÇʹÓüÓËÙ¼üʱÏûϢѻ·µÄ´úÂ룬Çë×¢Òâ´ÖÌå×Ö²¿·Ö£º
¡£while¡¡¡¡¡¡TRUE
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡¡¡GetMessage£»addr¡¡@stMsg£»NULL£»0£»0
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£break¡¡¡¡¡¡¡£if¡¡eax¡¡¡¡¡¡0
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡¡¡TranslateAccelerator£»hWinMain£»@hAccelerator£»addr¡¡@stMsg
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£if¡¡¡¡¡¡¡¡¡¡¡¡eax¡¡¡¡0
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡¡¡TranslateMessage£»addr¡¡@stMsg
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡¡¡DispatchMessage£»addr¡¡@stMsg
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£endif
¡£endw
TranslateAcceleratorº¯ÊýÊÇʵÏÖ¼ÓËÙ¼ü¹¦ÄܵĺËÐÄ£¬ËüµÄ²ÎÊýΪĿ±ê´°¿Ú¡¢¼ÓËÙ¼ü¾ä±úºÍGetMessageÈ¡µÃµÄÏûÏ¢½á¹¹¡£¸Ãº¯Êý¼ì²éÏûÏ¢½á¹¹ÖеÄÏûÏ¢£¬Èç¹ûÓöµ½WM_KEYDOWNºÍWM_SYSKEYDOWNÏûÏ¢Ôò¼ì²â¼ÓËÙ¼ü×ÊÔ´£¬¿´°´¼üÊÇ·ñ·ûºÏij¸ö¼ÓËÙ¼ü£¬·ûºÏµÄ»°ÔòÏòÄ¿±ê´°¿Ú·¢ËÍWM_MAND»òWM_SYSMANDÏûÏ¢£¬²¢·µ»ØTRUE£¬²»·ûºÏµÄ»°²»½øÐÐÈκδ¦Àí²¢·µ»ØFALSE¡£
ÓÉÓÚ¼ÓËÙ¼üµÄ¼üÂë²¢²»ÊÇÓû§ÕæÕýÏëÊäÈë´°¿ÚµÄ£¬±ÈÈçÓû§ÔÚд×Ö°åÖÐÊäÈëÎÄ×Ö£¬°´Ctrl£«C¼üÊÇΪÁË¡°¿½±´¡±£¬¶ø²¢²»ÊÇÏë°ÑCtrl£«C¼ü¶ÔÓ¦µÄ×Ö·ûÊäÈëÎĵµ£¬ËùÒÔÕâ¸öCtrl£«CµÄ¼üÂëÔÚÍê³É¼ÓËÙ¼üµÄʹÃüºó¾ÍÓ¦¸Ã¶ªÆú£¬Ò²¾ÍÊÇ˵·ûºÏ¼ÓËÙ¼üµÄ¼üÅÌÏûÏ¢²»Ó¦¸ÃÔÙ·¢Ë͸ø´°¿Ú£¬TranslateMessageºÍDispatchMessageº¯ÊýǰµÄÂß¼ÅжϾÍÊÇÕâÑùµÄÒâͼ£ºÖ»ÓÐTranslateAcceleratorûÓÐת»»µÄÏûÏ¢£¨·µ»ØÖµeaxΪ0£©²Å¼ÌÐø´¦Àí¡£
ÁíÍ⣬TranslateAcceleratorµÄ²ÎÊýÖÐÓиö¡°Ä¿±ê´°¿Ú¡±£¬Àý×ÓÖÐÊdzÌÐòµÄÖ÷´°¿ÚhWinMain£¬ÎªÊ²Ã´ÒªÉèÖÃÕâÑùÒ»¸ö²ÎÊý¶ø²»ÏñDispatchMessageº¯ÊýÒ»ÑùʹÓÃMSG½á¹¹ÖеÄhwndÄØ£¿ÕâÊÇÒòΪ¼üÅÌÏûÏ¢¿ÉÒÔ²úÉúÓÚ²»Í¬´°¿ÚÖСª¡ª¼È¿ÉÄÜÊÇÖ÷´°¿Ú£¬Ò²¿ÉÄÜÊÇÆäËû×Ó´°¿Ú£¬Èç¹ûÓÃ@stMsg¡£hwnd×öÄ¿±ê´°¿Ú£¬¾Í±ØÐëÔÚËùÓÐ×Ó´°¿ÚµÄ´°¿Ú¹ý³ÌÖж¼ÉèÖô¦Àí¼ÓËÙ¼üÏûÏ¢µÄ´úÂ룬ÕâÏÔÈ»ÊÇÒ»ÖÖÀË·Ñ£¬ËùÒÔÒ»°ã°ÑËùÓеļÓËÙ¼üÏûÏ¢¶¼·¢Ë͵½Ö÷´°¿Ú£¬È»ºó¼¯ÖÐÔÚÖ÷´°¿ÚµÄ´°¿Ú¹ý³ÌÖд¦ÀíWM_MANDÏûÏ¢£¬ÕâÑùÓÐÀûÓÚ¾«¼ò´úÂë¡£
3¡£¡¡²Ëµ¥ºÍ¼ÓËÙ¼üÏûÏ¢
µ±Óû§Ñ¡ÔñÁËÒ»¸ö²Ëµ¥ÏîµÄʱºò£¬WindowsÏò²Ëµ¥ËùÊôµÄ´°¿Ú·¢ËÍWM_MANDÏûÏ¢£»¶øÓû§°´ÏÂÁËÒ»¸ö¼ÓËÙ¼üµÄʱºò£¬WindowsÏòTranslateAcceleratorº¯ÊýÖ¸¶¨µÄÄ¿±ê´°¿Ú·¢ËÍWM_MANDÏûÏ¢¡£Ò»°ãÕâÁ½ÖÖÇé¿ö¶ÔÓ¦µÄ´°¿Ú¶¼ÊÇÖ÷´°¿Ú£¬ËùÒÔ¿ÉÒÔÔÚÖ÷´°¿ÚÖеĴ°¿Ú¹ý³ÌÖм¯Öд¦ÀíWM_MANDÏûÏ¢£¬¶ø²»±Ø¿¼ÂÇËü¾¿¾¹ÊDz˵¥Òý·¢µÄ»¹ÊǼÓËÙ¼üÒý·¢µÄ¡£
WM_MANDÏûÏ¢µÄÁ½¸ö²ÎÊýÊÇÕâÑù¶¨ÒåµÄ£º
wParamµÄ¸ßλ¡¡£½¡¡wNotifyCode¡¡¡¡£»Í¨ÖªÂë¡¡
wParamµÄµÍλ¡¡£½¡¡wID¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£»ÃüÁîID
lParam¡¡£½¡¡hwndCtl¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£»·¢ËÍWM_MANDµÄ×Ó´°¿Ú¾ä±ú
³ýÁ˲˵¥ºÍ¼ÓËÙ¼ü£¬WM_MANDÏûÏ¢Ò²¿ÉÒÔÓÉÆäËû×Ó´°¿ÚÒý·¢£¬ÈçÖ÷´°¿ÚÖеİ´Å¥»ò¹¤¾ßÀ¸µÈ£¬lParam²ÎÊýÖ¸¶¨ÁËÒý·¢ÏûÏ¢µÄ×Ó´°¿Ú¾ä±ú£¬¶ÔÓڲ˵¥ºÍ¼ÓËÙ¼üÒý·¢µÄWM_MANDÏûÏ¢£¬lParamµÄֵΪÁã¡£wParam²ÎÊýµÄµÍ16λÊÇÃüÁîID£¬Ò²¾ÍÊÇ×ÊÔ´½Å±¾ÎļþÖв˵¥ÏîµÄÃüÁîID»ò¼ÓËÙ¼üµÄÃüÁîID£¬¸ß16λÊÇ֪ͨÂ룬²Ëµ¥ÏûÏ¢µÄ֪ͨÂëÊÇ0£¬¼ÓËÙ¼üÏûÏ¢µÄ֪ͨÂëΪ1¡£
ÔÚÐèÒª´¦Àí²Ëµ¥ºÍ¼ÓËÙ¼üÏûÏ¢µÄ´°¿Ú¹ý³ÌÖУ¬Ò»°ãÐèÒªÔö¼ÓÒ»¸öWM_MAND·ÖÖ§À´´¦Àí¶ÔÓ¦µÄÏûÏ¢£¬Õâ¸ö·ÖÖ§µÄÒ»°ã½á¹¹Îª£º
¡£elseif¡¡eax¡¡¡¡¡¡WM_MAND¡¡¡¡£»eaxÖÐΪwMsg
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡¡¡¡¡¡¡¡¡eax£»wParam
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡movzx¡¡¡¡¡¡eax£»ax
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£if¡¡¡¡¡¡¡¡¡¡eax¡¡¡¡¡¡ÃüÁîID1
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£¡£¡£
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£elseif¡¡eax¡¡¡¡¡¡ÃüÁîID2
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£¡£¡£
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£endif
ÆäÖÐmovzx¡¡eax£»axÖ¸Á16λµÄaxÀ©Õ¹µ½32λµÄeax£¬Ï൱ÓÚ½«eaxµÄ¸ß16λÌîÁ㣬×÷ÓþÍÊǵ±ÏûÏ¢ÓɼÓËÙ¼üÒýÆðʱ£¬½«¸ß16λÖеÄ1ºöÂÔ£¬ÕâÑùÏÂÃæµÄ·ÖÖ§¾Í¿ÉÒÔͬʱ´¦Àí²Ëµ¥ºÍ¼ÓËÙ¼üÏûÏ¢£¬µ±È»¶ÁÕßÒ²¿ÉÒÔÈ¥µôÕâÒ»¾ä£¬ÕâÑùÏÂÃæµÄ±È½ÏÓï¾äÖоÍҪʹÓÃax¶ø²»ÊÇeax¡£
ÔÚÀý×Ó³ÌÐòÖУ¬mov¡¡eax£»wParamÇ°Ãæ»¹ÓÐÒ»¾äinvoke¡¡_DisplayMenuItem£»wParam£¬×÷ÓÃÊÇÔÚ´¦ÀíWM_MANDÏûϢǰ½«wParamµÄֵͨ¹ýÒ»¸ö¶Ô»°¿òÏÔʾ³öÀ´£¬¶ÁÕß¿ÉÒÔºÍ×ÊÔ´½Å±¾ÎļþÖж¨ÒåµÄÃüÁîIDÖµ¶Ô±Èһϣ¬ÔÚÕý³£Ê¹ÓõijÌÐòÖпÉÒÔÈ¥µôÕâÒ»¾ä¡£
¶ÁÕß¿ÉÒÔ·¢ÏÖ£¬×ÊÔ´ÎļþÖж¨ÒåµÄ¡°×ÖÌ塱²Ëµ¥ÏîµÄIDΪOx4201£¬µ±Ñ¡ÖС°×ÖÌ塱²Ëµ¥ÏîµÄʱºò£¬¶Ô»°¿òÖÐÏÔʾµÄwParamÊýÖµÕýÊÇ00004201£¬¶ø°´Ï¼ÓËÙ¼üAlt£«FµÄʱºò£¬ÏÔʾ³öÀ´µÄÖµ¾ÍÊÇ00014201ÁË£¬ËüÃǵÄÇø±ð¾ÍÊǸß16λÖеÄ֪ͨÂ벻ͬ¡£
¡¡
À´Ô´£ºµç×Ó¹¤Òµ³ö°æÉç¡¡×÷ÕߣºÂÞÔÆ±ò¡¡ÉÏÒ»Ò³¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡»ØÊéÄ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÏÂÒ»Ò³¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
ÉÏÒ»Ò³¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡»ØÊéÄ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÏÂÒ»Ò³¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡
µÚ5Õ¡¡Ê¹ÓÃ×ÊÔ´
5¡£1¡¡²Ëµ¥ºÍ¼ÓËÙ¼ü£¨6£©
¡¡¡¡¡¡¡¡
4¡£¡¡²Ëµ¥ÏîµÄÐÞ¸Ä
ÔÚ³ÌÐòµÄÔËÐÐÖÐÒ²¿ÉÒÔ¶¯Ì¬Ð޸IJ˵¥Ï°üÀ¨Ìí¼Ó¡¢É¾³ýºÍÐ޸IJÙ×÷£¬ÕâЩ²Ù×÷ÊÇͨ¹ý¼¸¸öAPIº¯ÊýÀ´Íê³ÉµÄ£º
invoke¡¡AppendMenu£»hMenu£»uFlags£»uIDNewItem£»lpNewItem¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£»Ìí¼Ó²Ëµ¥Ïî
invoke¡¡InsertMenu£»hMenu£»uPosition£»uFlags£»uIDNewItem£»lpNewItem¡¡¡¡£»²åÈë²Ëµ¥Ïî
invoke¡¡ModifyMenu£»hMenu£»uPosition£»uFlags£»uIDNewItem£»lpNewItem¡¡¡¡£»Ð޸IJ˵¥Ïî
invoke¡¡DeleteMenu£»hMenu£»uPosition£»uFlags¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£»É¾³ý²Ëµ¥Ïî
invoke¡¡RemoveMenu£»hMenu£»uPosition£»uFlags¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£»É¾³ý²Ëµ¥Ïî
ÆäÖÐAppendMenuÓÃÀ´ÔÚÒ»¸ö²Ëµ¥µÄ×îºóÌí¼Ó²Ëµ¥ÏInsertMenuÔòÔÚÖмä²åÈë²Ëµ¥ÏModifyMenu¿ÉÒÔÐÞ¸ÄÒ»¸ö²Ëµ¥ÏîµÄÎÄ×Ö£¬DeleteMenuºÍRemoveMenuÔò¿ÉÒÔɾ³ýÒ»¸ö²Ëµ¥Ïî¡£
ÕâЩº¯ÊýÖеIJÎÊý¶¼ÊÇÀ×ͬµÄ£¬hMenu²ÎÊýÖ¸Òª²Ù×÷µÄ²Ëµ¥¾ä±ú£»uPositionÓÃÀ´¶¨Î»Òª²Ù×÷µÄ²Ëµ¥Ï¶¨Î»µÄ·½·¨ÓÐÁ½ÖÖ£ºÓÃÃüÁîID¶¨Î»»òÓÃλÖÃË÷Òý£¬ÓÃÄÄÒ»ÖÖ·½·¨È¡¾öÓÚºóÃæµÄuFlags²ÎÊý£¬µ±uFlagsΪMF_BYMANDʱ£¬uPostionΪ²Ëµ¥ÏîµÄÃüÁîID£¬¶øµ±uFlagsΪMF_BYPOSITIONµÄʱºò£¬uPostion±íʾ²Ëµ¥ÏîµÄλÖÃË÷Òý£¬Ë÷ÒýÊÇ´Ó0¿ªÊ¼µÄ£¬Ò²¾ÍÊÇ˵µÚÒ»¸ö²Ëµ¥ÏîµÄË÷ÒýֵΪ0¡£
AppendMenuº¯Êý×ÜÊÇÔڲ˵¥µÄ×îºóÌí¼ÓеIJ˵¥ÏËùÒÔ²»ÐèÒªuPostion²ÎÊý¡£
¶ÔÓÚAppendMenuºÍInsertMenu£¬»áÓÐÒ»¸öеIJ˵¥Ïî²úÉú£¬uIDNewItem¾Í±íʾÕâ¸öв˵¥ÏîµÄÃüÁîID£¬lpNewItemÖ¸Ïòв˵¥ÏîµÄÎÄ×Ö×Ö·û´®£¬ModifyMenuº¯Êý¿ÉÒÔÐÞ¸ÄÒ»¸ö²Ëµ¥ÏîµÄÃüÁîID»òÎÄ×Ö×Ö·û´®£¬ËùÒÔÒ²ÓÐuIDNewItemºÍlpNewItem²ÎÊý¡£¶øÓÃÀ´É¾³ý²Ëµ
СÌáʾ£º°´ »Ø³µ [Enter] ¼ü ·µ»ØÊéÄ¿£¬°´ ¡û ¼ü ·µ»ØÉÏÒ»Ò³£¬ °´ ¡ú ¼ü ½øÈëÏÂÒ»Ò³¡£
ÔÞÒ»ÏÂ
Ìí¼ÓÊéÇ©¼ÓÈëÊé¼Ü