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

ÏÂÔØ±¾Êé

Ìí¼ÓÊéÇ©

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


°´¼üÅÌÉÏ·½Ïò¼ü ¡û »ò ¡ú ¿É¿ìËÙÉÏÏ·­Ò³£¬°´¼üÅÌÉ쵀 Enter ¼ü¿É»Øµ½±¾ÊéĿ¼ҳ£¬°´¼üÅÌÉÏ·½Ïò¼ü ¡ü ¿É»Øµ½±¾Ò³¶¥²¿£¡

£»********************************************************************

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡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] ¼ü ·µ»ØÊéÄ¿£¬°´ ¡û ¼ü ·µ»ØÉÏÒ»Ò³£¬ °´ ¡ú ¼ü ½øÈëÏÂÒ»Ò³¡£ ÔÞһϠÌí¼ÓÊéÇ©¼ÓÈëÊé¼Ü