ÓÑÇéÌáʾ£ºÈç¹û±¾ÍøÒ³´ò¿ªÌ«Âý»òÏÔʾ²»ÍêÕû£¬Çë³¢ÊÔÊó±êÓÒ¼ü¡°Ë¢Ð¡±±¾ÍøÒ³£¡
windows»·¾³ÏÂ32λ»ã±àÓïÑÔ³ÌÐòÉè¼Æ-µÚ58²¿·Ö
¿ì½Ý²Ù×÷: °´¼üÅÌÉÏ·½Ïò¼ü ¡û »ò ¡ú ¿É¿ìËÙÉÏÏ·ҳ °´¼üÅÌÉ쵀 Enter ¼ü¿É»Øµ½±¾ÊéĿ¼ҳ °´¼üÅÌÉÏ·½Ïò¼ü ¡ü ¿É»Øµ½±¾Ò³¶¥²¿! Èç¹û±¾ÊéûÓÐÔĶÁÍ꣬ÏëÏ´μÌÐø½Ó×ÅÔĶÁ£¬¿ÉʹÓÃÉÏ·½ "Êղص½ÎÒµÄä¯ÀÀÆ÷" ¹¦ÄÜ ºÍ "¼ÓÈëÊéÇ©" ¹¦ÄÜ£¡
¡ö¡¡¡¡¡¡CFE_BOLD£¬CFE_ITALIC£¬CFE_STRIKEOUTºÍCFE_UNDERLINE¡ª¡ª´ÖÌå×Ö·û¡¢Ð±Ìå×Ö·û¡¢´øɾ³ýÏߺʹøÏ»®Ïß¡£
¡ö¡¡¡¡¡¡CFE_PROTECTED¡ª¡ª×Ö·ûÊÇÊܱ£»¤µÄ£¬Æóͼ¸Ä±ä×Ö·ûµÄ»°¿Ø¼þ»áÏò¸¸´°¿Ú·¢ËÍÒ»¸öEN_PROTECTED֪ͨÏûÏ¢¡£
¡ñ¡¡¡¡¡¡yHeight¡ª¡ª×Ö·û¸ß¶È£¬µ¥Î»ÊÇ1/1¡¡440¡¡Ó¢´ç£¨»ò1/20°õ£©£¬Èç¹ûÕâÀïÊÇ180£¬»»Ëãµ½¡°×ÖÌåÑ¡Ôñ¡±Í¨ÓöԻ°¿òÖеijߴç¾ÍÊÇ9°õ£¨180¡Á1/20=9£©¡£
¡ñ¡¡¡¡¡¡yOffset¡ª¡ª´Ó»ùÏßËãÆðµÄ×Ö·ûÆ«ÒÆ£¬µ¥Î»Í¬ÉÏ£¬Èç¹û¸Ã³ÉÔ±ÊÇÕýÖµ£¬×Ö·ûÏÔʾΪÉϱꣻÈç¹ûÊǸºÖµ£¬×Ö·ûÏÔʾΪϱꡣ
¡ñ¡¡¡¡¡¡crTextColor¡ª¡ªÕýÎÄÑÕÉ«£¬Èç¹ûÔÚdwEffects×Ö¶ÎÖÐÖ¸¶¨ÁËCFE_AUTOCOLOR±êÖ¾£¬ÄÇôÕâ¸öÖµ»á±»ºöÂÔ¡£
¡ñ¡¡¡¡¡¡bCharSetºÍbPitchAndFamily¡ª¡ª×Ö·û¼¯¡£
¡ñ¡¡¡¡¡¡szFaceName¡ª¡ªÓÃ×Ö·û´®±íʾµÄ×ÖÌåÃû×Ö¡£
ͨ¹ýÌî³äÕâ¸ö½á¹¹²¢½«Ëüͨ¹ýEM_SETCHARFORMATÏûÏ¢´«Ë͸ø¿Ø¼þ£¬¿ÉÒԸıäÎÄ×ÖµÄЧ¹û£¨´ÖÌ塢бÌå¡¢´øɾ³ýÏß¡¢´øÏ»®Ïߵȣ©£¬ÕýÎÄÑÕÉ«£¨crTextColor£©£¬×ÖÌåÍâ¹Û£¨szFaceName£©ºÍ×ÖÌå´óС£¨yHeight£©£¬ÒÔ¼°Ê¹ÓõÄ×Ö·û¼¯µÈ¡£Ê¹ÓÃCHARFORMAT2½á¹¹¿ÉÒÔÉèÖøü¶àµÄÎı¾·ç¸ñ£¬Èç×Ö¼ä¾àÓëÕýÎı³¾°É«µÈ¡£Èç¹û²»ÐèÒªÕâЩ¶îÍâµÄ¹¦ÄÜ£¬ÄÇôֻҪʹÓÃCHARFORMAT½á¹¹¾Í¿ÉÒÔÁË¡£
Àý×Ó³ÌÐòRichedit¡£asmÖÐÖ»ÑÝʾÁËʹÓÃPlain¡¡TextģʽΪËùÓÐÎı¾ÉèÖÃ×ÖÌåµÄ·½·¨£º
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡nst
szFont¡¡¡¡db¡¡¡¡¡¡¡¡¡¡¡¡'ËÎÌå'£»0
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡de
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡SendMessage£»hWinEdit£»EM_SETTEXTMODE£»TM_PLAINTEXT£»0
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡RtlZeroMemory£»addr¡¡@stCf£»sizeof¡¡@stCf
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡¡¡¡¡¡¡¡¡@stCf¡£cbSize£»sizeof¡¡@stCf
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡¡¡¡¡¡¡¡¡@stCf¡£yHeight£»9¡¡*¡¡20
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡¡¡¡¡¡¡¡¡@stCf¡£dwMask£»CFM_FACE¡¡or¡¡CFM_SIZE¡¡or¡¡CFM_BOLD
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡lstrcpy£»addr¡¡@stCf¡£szFaceName£»addr¡¡szFont
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡SendMessage£»hWinEdit£»EM_SETCHARFORMAT£»0£»addr¡¡@stCf
³ÌÐòÊ×ÏȽ«¿Ø¼þµÄģʽÉèÖÃΪPlain¡¡Textģʽ£¬È»ºó¶¨ÒåÁËÒ»¸öÃûΪ@stCfµÄCHARFORMAT½á¹¹£¬½«½á¹¹³¤¶ÈÉèÖÃΪCHARFORMAT½á¹¹µÄ³¤¶È£¬È»ºóÔÚdwMask¡¡×Ö¶ÎÖÐʹÓÃCFM_FACE£¬¡¡CFM_SIZEºÍCFM_BOLD±êÖ¾£¬±íʾֻʹÓÃ×ÖÌå¡¢×ÖÌå´óСºÍ×ÖÌå´Öϸ²ÎÊý£¬×îºó·¢ËÍEM_SETCHARFORMATÏûÏ¢½«¿Ø¼þÖеÄÈ«²¿ÎÄ×ÖÉèÖÃΪ´óСΪ9°õ£¨Ð¡ÎåºÅ£©µÄ¡°ËÎÌ塱¡£
4¡£¡¡×°ÈëºÍ±£´æÎı¾
ÏÔÈ»£¬Ê¹ÓÃGetWindowTextºÍSetWindowTextº¯ÊýÀ´±£´æºÍ×°ÈëÎı¾ÊÇ¿ÉÐеģ¬µ«ÊÇRichEdit¿Ø¼þÖ§³ÖºÜ´óµÄÎļþ£¬µ±Îļþ×ã¹»´óµÄʱºò£¬Ê¹ÓÃÕâÖÖ·½·¨¾ÍºÜÂé·³£¬ÒòΪ±ØÐëÊ×ÏÈÒª·ÖÅäÒ»¿é×ã¹»´óµÄÄÚ´æÓÃ×ö»º³åÇø£¬ÎªÁ˽â¾öÕâ¸öÎÊÌ⣬Richedit¿Ø¼þÌṩÁËÒ»ÖÖз½·¨£¬ÄǾÍÊÇÎı¾Á÷£¨Text¡¡Streaming£©¡£
¿¼ÂÇÕâÑùÒ»ÖÖÇé¿ö£ºÎªÁË×°ÈëÎı¾£¬¿ÉÒÔÉêÇëÒ»¿é´óСºÏÊʵĻº³åÇø£¨µ±È»²»»á´óµ½ÄÜÈÝÄÉÈ«²¿Îı¾£©£¬Ã¿´Î´ÓÎļþÖжÁÈ뻺³åÇø´óСµÄÎı¾²¢Ìí¼Óµ½¿Ø¼þÖУ¬Èç´ËÑ»·Ö±µ½¶ÁÈëÈ«²¿Îı¾£»±£´æÎı¾µÄʱºò£¬Í¬Ñù¿ÉÒÔÿ´Î´Ó¿Ø¼þÖÐÈ¡³ö»º³åÇø´óСµÄÎı¾£¬È»ºóдÈëÎļþ£¬Èç´ËÑ»·Ö±µ½´¦ÀíÍê¿Ø¼þÖеÄÈ«²¿Îı¾¡£
Îı¾Á÷µÄ²Ù×÷·½·¨Óë´ËÀàËÆ£¬Ö»²»¹ý»º³åÇøºÍÑ»·¶¼·â×°ÔڿؼþµÄÄÚ²¿£¬¶øÎÒÃÇͨ¹ýÌṩ»Øµ÷º¯ÊýµÄ°ì·¨Ìṩ¶ÁдÎļþµÄ¹¦ÄÜÄ£¿é£¬Richedit¿Ø¼þÑ»·µ÷ÓÃÕâ¸öÄ£¿éÖ±µ½´¦ÀíÍêÈ«²¿µÄÄÚÈÝ¡£Ã¿´Îµ÷ÓõÄʱºò£¬¿Ø¼þͨ¹ý²ÎÊý¸æË߻ص÷º¯ÊýÒª¶ÁдµÄ×Ö½ÚÊýºÍ»º³åÇøµÄµØÖ·¡£Îı¾µÄÁ÷ÈëºÍÁ÷³öʹÓÃEM_STREAMINºÍEM_STREAMOUTÏûÏ¢£¬ÕâÁ½¸öÏûÏ¢µÄʹÓøñʽÊÇÒ»ÑùµÄ£º
¡¡¡¡¡¡¡¡invoke¡¡¡¡SendMessage£»hWinEdit£»EM_STREAMIN£»uFormat£»lpStream
¡¡¡¡¡¡¡¡invoke¡¡¡¡SendMessage£»hWinEdit£»EM_STREAMOUT£»uFormat£»lpStream
wParam²ÎÊýÖеÄuFormatÖ¸¶¨ÐèÒªÁ÷Èë/Á÷³öµÄÄÚÈÝ£¬Ëü¿ÉÒÔÊÇÒÔϵÄÈ¡Öµ£º
¡ñ¡¡¡¡¡¡SF_RTF¡ª¡ªÎı¾¸ñʽÊÇRTF¸ñʽ¡£
¡ñ¡¡¡¡¡¡SF_TEXT¡ª¡ªÎı¾ÊÇPlain¡¡Text¸ñʽ£¬Ò²¾ÍÊǼòµ¥µÄÎı¾¸ñʽ¡£
¡ñ¡¡¡¡¡¡SFF_SELECTION¡ª¡ªÁ÷²Ù×÷µÄ·¶Î§Êǵ±Ç°Ñ¡ÔñÇøÓò¡£Èç¹û½«Îı¾Á÷È룬µ±Ç°Ñ¡ÔñÇøÓò¾Í»á±»Ìæ»»£»Èç¹ûÊÇÁ÷³ö£¬ÔòÖ»ÓÐÄÇЩµ±Ç°Ñ¡¶¨µÄÎı¾²ÅÁ÷³ö¡£Èç¹ûûÓÐÖ¸¶¨Õâ¸ö±êÖ¾£¬²Ù×÷·¶Î§ÊǿؼþÖеÄËùÓÐÎı¾¡£
¡ñ¡¡¡¡¡¡SF_UNICODE¡ª¡ªÖ¸¶¨µÄÊÇ¡¡Unicode¡¡Îı¾£¨2¡£0¼°ÒÔÉÏ°æ±¾Ìṩ£©¡£
lParam²ÎÊýÖеÄlpStreamÖ¸ÏòÒ»¸öEDITSTREAM¡¡½á¹¹£¬¸Ã½á¹¹¶¨ÒåÈçÏ£º
¡¡EDITSTREAM¡¡STRUCT¡¡
¡¡¡¡¡¡¡¡dwCookie¡¡DWORD¡¡¡¡¡¡¡¡¡¡¡¡£¿¡¡¡¡¡¡£»Óû§×Ô¶¨ÒåÖµ
¡¡¡¡¡¡¡¡dwError¡¡DWORD¡¡¡¡¡¡¡¡¡¡¡¡¡¡£¿¡¡¡¡¡¡£»ÓÃÀ´·µ»ØÁ÷²Ù×÷¹ý³ÌÖеĴíÎóÐÅÏ¢
¡¡¡¡¡¡¡¡pfnCallback¡¡DWORD¡¡¡¡¡¡£¿¡¡¡¡¡¡£»»Øµ÷º¯ÊýµØÖ·
EDITSTREAM¡¡ENDS
½á¹¹Öи÷×ֶεÄ˵Ã÷ÈçÏ£º
¡ñ¡¡¡¡¡¡dwCookie¡ª¡ªÓ¦ÓóÌÐò×Ô¶¨ÒåµÄÊýÖµ£¬Õâ¸öÊýÖµ½«»á´«µÝ¸ø»Øµ÷º¯Êý¡£
¡ñ¡¡¡¡¡¡dwError¡ª¡ªÖ¸Ê¾Á÷²Ù×÷µÄ½á¹û£¬0˵Ã÷ûÓдíÎó¡£
¡ñ¡¡¡¡¡¡pfnCallback¡ª¡ªÖ¸Ïò»Øµ÷º¯Êý£¬¸Ãº¯ÊýÓÉÓû§¶¨Ò壬²¢ÓÉRichEdit¿Ø¼þµ÷ÓÃÀ´´«ÊäÎı¾¡£RichEdit¿Ø¼þ½«Îı¾·Ö³É¶à¸ö²¿·Ö£¬Ã¿´Îµ÷Óøú¯Êý´¦ÀíÒ»¸ö²¿·Ö£¬Ö±µ½È«²¿Îı¾±»´¦ÀíΪֹ¡£
»Øµ÷º¯ÊýµÄ¶¨ÒåÈçÏ£º
EditStreamCallback¡¡¡¡proc¡¡¡¡¡¡¡¡dwCookie£»lpBuffer£»NumBytes£»¡¡pBytesTransferred
¿Ø¼þ´«µÝ¸ø»Øµ÷º¯ÊýµÄ²ÎÊý˵Ã÷ÈçÏ£º
¡ñ¡¡¡¡¡¡dwCookie¡ª¡ª¾ÍÊÇÏûÏ¢ÖÐÖ¸¶¨µÄEDITSTREAM½á¹¹Öж¨ÒåµÄdwCookieÖµ¡£
¡ñ¡¡¡¡¡¡lpBuffer¡ª¡ªÖ¸ÏòRichedit¿Ø¼þÌṩµÄ»º³åÇø¡£¶ÔÓÚÁ÷Èë²Ù×÷£¬ÕâÀïÓÃÀ´½ÓÊÕÁ÷ÈëµÄÎı¾£»¶ÔÓÚÁ÷³ö²Ù×÷£¬ÕâÀï´æ·ÅÒªÁ÷³öµÄÎı¾¡£
¡ñ¡¡¡¡¡¡NumBytes¡ª¡ª±¾´Îµ÷ÓÃÖпÉÒÔ²Ù×÷µÄ×Ö½ÚÊý¡£¶ÔÓÚÁ÷Èë²Ù×÷£¬±íʾ¿ÉÒÔдÈ뻺³åÇøµÄ×î´ó×Ö½ÚÊý£»¶ÔÓÚÁ÷³ö²Ù×÷£¬±íʾÐèÒªÁ÷³öµÄÎı¾µÄ³¤¶È¡£
¡ñ¡¡¡¡¡¡pBytesTransferred¡ª¡ªÖ¸ÏòÒ»¸öË«×Ö£¬ÓÉÓÚʵ¼Ê²Ù×÷µÄ×Ö½ÚÊý²»Ò»¶¨µÈÓÚNumBytes²ÎÊýÖ¸¶¨µÄÊýÖµ£¨±ÈÈçÁ÷Èëʱ¶Áµ½ÁËÎļþβ²¿£©£¬²Ù×÷ºó±ØÐëÔÚÕâÀï·µ»Øʵ¼Ê²Ù×÷µÄ×Ö½ÚÊý¡£
»Øµ÷º¯Êý·µ»Ø0˵Ã÷²Ù×÷³É¹¦£¬ÕâÑùÈç¹û»¹ÓÐÊý¾ÝÐèÒª¶Áд£¬RichEdit¿Ø¼þ¾Í»á¼ÌÐøµ÷ÓÃËü¡£Èç¹û²Ù×÷Öз¢ÉúÁË´íÎ󣬶øÇÒ³ÌÐòÐèҪֹͣ²Ù×÷µÄ»°£¬¿ÉÒÔ·µ»ØÒ»¸ö·Ç0Öµ£¬ÕâʱRichedit¿Ø¼þ¾Í»á¶ªÆúlpBufferÖ¸ÏòµÄÊý¾Ý²¢Í£Ö¹¶Ô»Øµ÷º¯ÊýµÄ¼ÌÐøµ÷Óᣵ±ÏûÏ¢·µ»ØµÄʱºò£¬Óɻص÷º¯Êý·µ»ØµÄ´íÎó/³É¹¦Öµ»áÔÚEDITSTREAM½á¹¹µÄdwError×Ö¶ÎÖзµ»Ø£¬ËùÒÔ¿ÉÒÔÔÚSendMessage·µ»ØºóÒԴ˼ì²éÁ÷²Ù×÷ÊÇ·ñ³É¹¦¡£
ÔÚÀý×ÓÎļþÖУ¬½øÐÐÁ÷²Ù×÷ÈçÏ£º
£»¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·
£»¡¡»Øµ÷º¯Êý
£»¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·
_ProcStream¡¡¡¡¡¡¡¡¡¡proc¡¡uses¡¡ebx¡¡edi¡¡esi¡¡_dwCookie£»_lpBuffer£»_dwBytes£»_lpBytes
¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£if¡¡¡¡¡¡¡¡¡¡_dwCookie
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡¡¡ReadFile£»hFile£»_lpBuffer£»_dwBytes£»_lpBytes£»0
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£else
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡¡¡WriteFile£»hFile£»_lpBuffer£»_dwBytes£»_lpBytes£»0
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£endif
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡xor¡¡¡¡¡¡¡¡¡¡eax£»eax
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ret
¡¡¡¡¡¡¡¡
_ProcStream¡¡¡¡¡¡¡¡¡¡endp
£»¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·
£»¡¡Á÷³ö²Ù×÷
£»¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡¡¡¡¡¡¡¡¡@stES¡£dwCookie£»FALSE¡¡¡¡¡¡¡¡£»¡¡¡¡@stESÊÇÒ»¸öEDITSTREAM½á¹¹
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡¡¡¡¡¡¡¡¡@stES¡£pfnCallback£»offset¡¡_ProcStream
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡SendMessage£»hWinEdit£»EM_STREAMOUT£»SF_TEXT£»addr¡¡@stES
£»¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·
£»¡¡Á÷Èë²Ù×÷
£»¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡¡¡¡¡¡¡¡¡@stES¡£dwCookie£»TRUE
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡¡¡¡¡¡¡¡¡@stES¡£pfnCallback£»offset¡¡_ProcStream
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡SendMessage£»hWinEdit£»EM_STREAMIN£»SF_TEXT£»addr¡¡@stES
³ÌÐòÖÐÁ÷ÈëºÍÁ÷³ö²Ù×÷µÄ»Øµ÷º¯ÊýʹÓÃͬһ¸ö×Ó³ÌÐò£¬Í¨¹ýÉèÖÃEDITSTREAM½á¹¹µÄ×Ô¶¨ÒåÖµdwCookie×Ö¶ÎÀ´±íʾ½øÐеÄÊÇÁ÷È뻹ÊÇÁ÷³öµÄ²Ù×÷£¬×Ó³ÌÐòÖÐͨ¹ýÅжÏdwCookie²ÎÊýÊÇTRUE»¹ÊÇFALSEÀ´¾ö¶¨½øÐжÁÎļþ»¹ÊÇдÎļþµÄ²Ù×÷£¨¶ÁдÎļþµÄº¯ÊýReadFileºÍWriteFileµÄÓ÷¨Çë²Î¿¼µÚ10Õ£©¡£
¡¡
À´Ô´£ºµç×Ó¹¤Òµ³ö°æÉç¡¡×÷ÕߣºÂÞÔƱò¡¡ÉÏÒ»Ò³¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡»ØÊéÄ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÏÂÒ»Ò³¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
ÉÏÒ»Ò³¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡»ØÊéÄ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÏÂÒ»Ò³¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡
µÚ9Õ¡¡Í¨Óÿؼþ
9¡£4¡¡Ê¹ÓÃRichedit¿Ø¼þ£¨9£©
¡¡¡¡¡¡¡¡
5¡£¡¡²éÕÒºÍÌæ»»
ÔÚRichedit¿Ø¼þÖпÉÒÔͨ¹ý·¢ËÍEM_FINDTEXT»òÕßEM_FINDTEXTEXÏûÏ¢À´Íê³É²éÕÒ×Ö·û´®µÄ¹¦ÄÜ£¬EM_FINDTEXTEXÏûÏ¢ÊÇEM_FINDTEXTÏûÏ¢µÄÀ©Õ¹£¬ËüÃǵÄÓ÷¨ÊÇ£º
invoke¡¡¡¡SendMessage£»hWinEdit£»EM_FINDTEXT£»uFlags£»lpFindText
invoke¡¡¡¡SendMessage£»hWinEdit£»EM_FINDTEXTEX£»uFlags£»lpFindTextEx
ÏûÏ¢µÄwParam²ÎÊýÖеÄuFlagsÖ¸¶¨²éÕÒµÄÑ¡ÏËü¿ÉÒÔÊÇÒÔÏÂÈ¡ÖµµÄ×éºÏ£º
¡ñ¡¡¡¡¡¡FR_DOWN£¨2¡£0°æ±¾¼°ÒÔÉÏʹÓã©¡ª¡ªÏòºó²éÕÒ£¬²»ÉèÖõĻ°±íʾÏòÇ°²éÕÒ¡£
¡ñ¡¡¡¡¡¡FR_MATCHCASE¡ª¡ª²éÕÒ×Ö·û´®Çø·Ö´óСд¡£
¡ñ¡¡¡¡¡¡FR_WHOLEWORD¡ª¡ªÆ¥ÅäÕû¸öµ¥´Ê¡£
EM_FINDTEXTµÄlParam²ÎÊýÖ¸ÏòÒ»¸öFINDTEXT½á¹¹£¬¶øEM_FINDTEXTEXÏûÏ¢µÄlParam²ÎÊýÖ¸ÏòÒ»¸öFINDTEXTEX½á¹¹£¬ÕâÁ½¸ö½á¹¹µÄ¶¨ÒåÈçÏ£º
FINDTEXT¡¡STRUCT
¡¡¡¡chrg¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡CHARRANGE¡¡¡¡¡¡¡¡£»²éÕÒÇøÓò
¡¡¡¡lpstrText¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡DWORD¡¡¡¡¡¡¡¡¡¡¡¡£¿¡¡¡¡¡¡£»²éÕÒ×Ö·û´®µØÖ·
FINDTEXT¡¡ENDS
FINDTEXTEX¡¡STRUCT
¡¡¡¡chrg¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡CHARRANGE¡¡¡¡¡¡£»²éÕÒÇøÓò
¡¡¡¡lpstrText¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡DWORD¡¡¡¡¡¡¡¡¡¡¡¡£¿¡¡¡¡¡¡£»²éÕÒ×Ö·û´®µØÖ·
¡¡¡¡chrgText¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡CHARRANGE¡¡¡¡¡¡£»Èç¹ûÕÒµ½ÔòÔÚÕâÀï·µ»ØÕÒµ½ÎÄ×ÖµÄÆðʼ/½áÊøλÖÃ
FINDTEXTEX¡¡ENDS
¿ÉÒÔ¿´³ö£¬EM_FINDTEXTEXÏûÏ¢µÄÀ©Õ¹Ö®´¦ÔÚÓÚÖ±½ÓÔÚchrgText×Ö¶ÎÖзµ»ØÕÒµ½ÎÄ×ÖµÄÇøÓò£¬³ÌÐò¿ÉÒÔÂíÉÏʹÓÃÕâ¸öÇøÓòÊý¾Ý½øÐÐÆäËû²Ù×÷£¬¶øEM_FINDTEXTÏûÏ¢±ØÐë¸ù¾ÝÕÒµ½µÄλÖúͲéÕÒ×Ö·û´®µÄ³¤¶È×Ô¼º¼ÆËãÕâ¸öÇøÓò¡£
Á½¸öÏûÏ¢µÄ·µ»ØÖµÊÇÒ»ÑùµÄ£¬Èç¹ûûÓÐÕÒµ½Ö¸¶¨ÎÄ×ÖÔò·µ»Ø£¿1£¬·ñÔò·µ»ØÕÒµ½ÎÄ×ÖµÄÆðʼλÖá£Àý×Ó³ÌÐòÔÚ_FindText×Ó³ÌÐòÖÐÍê³É²éÕÒ¹¦ÄÜ£¬Õâ¸ö×Ó³ÌÐò·Ö±ðÔÚ¡°²éÕÒÏÂÒ»¸ö¡±¡¢¡°²éÕÒÉÏÒ»¸ö¡±ºÍ¡°²éÕÒÎÄ×Ö¡±Í¨ÓöԻ°¿òµÄ×Ô¶¨ÒåÏûÏ¢Öб»µ÷Óã¬×Ó³ÌÐòÖÐͨ¹ýÏÂÃæµÄ´úÂëÀ´ÉèÖòéÕÒÇøÓò£º
¡¡¡¡¡¡¡¡invoke¡¡¡¡SendMessage£»hWinEdit£»EM_EXGETSEL£»0£»addr¡¡@stFindText¡£chrg
¡¡¡¡¡¡¡¡¡£if¡¡¡¡¡¡¡¡¡¡stFind¡£Flags¡¡&¡¡FR_DOWN
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡push¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡@stFindText¡£chrg¡£cpMax
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡pop¡¡¡¡¡¡¡¡¡¡@stFindText¡£chrg¡£cpMin
¡¡¡¡¡¡¡¡¡£endif
¡¡¡¡¡¡¡¡mov¡¡¡¡¡¡¡¡¡¡@stFindText¡£chrg¡£cpMax£»¡1
µ±ÕÒµ½Ò»¸öÆ¥Åä×Ö·û´®ºó£¬×Ö·û´®±»ÉèÖÃΪѡÔñÇøÓò£¬Èç¹ûÏòϼÌÐø²éÕÒÏÂÒ»¸öµÄ»°£¬±ØÐ뽫Õâ¸öÑ¡ÔñÇøÓòµÄ½áÊøλÖÃÓÃ×öÏÂÒ»´Î²éÕÒµÄÆðʼµã£¬ËùÒÔ³ÌÐò·¢ËÍEM_EXGETSELÏûÏ¢»ñÈ¡Ñ¡ÔñÇøÓò²¢½«cpMax×ֶηŵ½cpMin×Ö¶ÎÖУ¬²¢½«cpMax×Ö¶ÎÉèÖÃΪ¡1£¬±íʾһֱ²éÕÒµ½È«²¿Îı¾µÄ×îºó¡£
ÔÚµÚ8ÕÂÖÐÒѾÓÐËù½éÉÜ£º¡°²éÕÒÎÄ×Ö¡±Í¨ÓöԻ°¿òʹÓÃFINDREPLACE½á¹¹£¬²»ÖªµÀÊÇÇɺϻ¹ÊÇMicrosoftµÄ¹ÊÒâ°²ÅÅ£¬FINDREPLACE½á¹¹ÖеÄFlags×ֶκÍEM_FINDTEXTEXÏûÏ¢ÖеÄwParam²ÎÊýµÄ±êÖ¾¶¨ÒåÊÇÒ»ÑùµÄ£¬ËùÒÔ³ÌÐòÖ±½ÓÈ¡³öFlags×ֶΣ¬È»ºóÆÁ±ÎµôFR_MATCHCASE£¬FR_DOWNºÍFR_WHOLEWORDµÈ²»ÐèҪʹÓõıêÖ¾ÒԺ󣬾ͿÉÒÔÖ±½ÓÔÚÏûÏ¢µÄwParam²ÎÊýÖÐʹÓÃÁË£º
¡¡¡¡¡¡¡¡mov¡¡¡¡¡¡¡¡¡¡ecx£»stFind¡£Flags
¡¡¡¡¡¡¡¡and¡¡¡¡¡¡¡¡¡¡ecx£»FR_MATCHCASE¡¡or¡¡FR_DOWN¡¡or¡¡FR_WHOLEWORD
¡¡¡¡¡¡¡¡invoke¡¡¡¡SendMessage£»hWinEdit£»EM_FINDTEXTEX£»ecx£»addr¡¡@stFindText
ÕÒµ½×Ö·û´®ÒԺ󣬽øÐÐÌæ»»²Ù×÷¾Í²»ÊÇÒ»¼þ¸´ÔÓµÄÊÂÇéÁË£¬ÒòΪFINDTEXTEX½á¹¹µÄchrgText×Ö¶ÎÖÐÒѾ·µ»ØÁËÕÒµ½Îı¾µÄÆðʼºÍ½áÊøλÖ㬽«ËüÉèÖÃΪѡÔñÇøÓòÒÔºó¾Í¿ÉÒÔͨ¹ý·¢ËÍEM_REPLACESELÏûÏ¢½øÐÐÌæ»»²Ù×÷ÁË¡£
9¡£4¡£3¡¡¡¡Richedit¿Ø¼þµÄ֪ͨÏûÏ¢
Richedit¿Ø¼þÒ²¿ÉÒÔÏò¸¸´°¿Ú·¢ËͶàÖÖ֪ͨÏûÏ¢£¬Ê¹Óá°¿ÉÒÔ¡±Ò»´ÊµÄÒâ˼ÊÇ£¬¿Ø¼þÔÚĬÈÏ״̬ϲ¢²»·¢ËÍ֪ͨÏûÏ¢£¬Èç¹ûÐèÒª¿Ø¼þ·¢ËÍij¸öÏûÏ¢£¬±ØÐëÊ×ÏȶԿؼþ½øÐÐÉèÖá£Í¨¹ýÏòRichedit¿Ø¼þ·¢ËÍEM_SETEVENTMASKÏûÏ¢¿ÉÒÔ¼¤»îÐèÒªµÄ֪ͨÏûÏ¢£º
¡¡¡¡¡¡¡¡invoke¡¡¡¡SendMessage£»hWinEdit£»EM_SETEVENTMASK£»0£»dwMask
dwMaskÊÇʼþÑÚÂ룬¿ÉÒÔÊÇÏÂÃæ±êÖ¾µÄ×éºÏ£¬·Ö±ð´ú±í¼¤»î²»Í¬µÄ֪ͨÏûÏ¢£º
¡ñ¡¡¡¡¡¡ENM_CHANGE¡ª¡ªÔÊÐíEN_CHANGE֪ͨÂ룬±¾ÏûÏ¢ÔÚÓû§µÄ²Ù×÷¿ÉÄܸıä¿Ø¼þÖеÄÎı¾µÄʱºò·¢ËÍ¡£
¡ñ¡¡¡¡¡¡ENM_CORRECTTEXT¡ª¡ªÔÊÐíEN_CORRECTTEXT֪ͨÂë¡£
¡ñ¡¡¡¡¡¡ENM_DRAGDROPDONE¡ª¡ªÔÊÐíEN_DRAGDROPDONE֪ͨÂ룬±¾ÏûÏ¢ÔÚÓû§Íê³ÉÁËÒ»¸öÍϷŲÙ×÷ºó·¢ËÍ¡£
¡ñ¡¡¡¡¡¡ENM_DROPFILES¡ª¡ªÔÊÐíEN_DROPFILES֪ͨÂ룬±¾ÏûÏ¢ÔÚÓû§½«Ò»¸öÎļþÍϷŽø¿Ø¼þºó·¢ËÍ¡£
¡ñ¡¡¡¡¡¡ENM_KEYEVENTS¡ª¡ªÔÊÐíΪ¼üÅÌÏûÏ¢·¢ËÍEN_MSGFILTER֪ͨÂë¡£
¡ñ¡¡¡¡¡¡ENM_MOUSEEVENTS¡ª¡ªÔÊÐíΪÊó±êÏûÏ¢·¢ËÍEN_MSGFILTER֪ͨÂë¡£
¡ñ¡¡¡¡¡¡ENM_PROTECTED¡ª¡ªÔÊÐí·¢ËÍEN_PROTECTED֪ͨÂë¡£
¡ñ¡¡¡¡¡¡ENM_SCROLL¡ª¡ªÔÊÐí·¢ËÍEN_HSCROLLºÍEN_VSCROLL֪ͨÂ
¿ì½Ý²Ù×÷: °´¼üÅÌÉÏ·½Ïò¼ü ¡û »ò ¡ú ¿É¿ìËÙÉÏÏ·ҳ °´¼üÅÌÉ쵀 Enter ¼ü¿É»Øµ½±¾ÊéĿ¼ҳ °´¼üÅÌÉÏ·½Ïò¼ü ¡ü ¿É»Øµ½±¾Ò³¶¥²¿!
ÎÂÜ°Ìáʾ£º ο´Ð¡ËµµÄͬʱ·¢±íÆÀÂÛ£¬Ëµ³ö×Ô¼ºµÄ¿´·¨ºÍÆäËüС»ï°éÃÇ·ÖÏíÒ²²»´íŶ£¡·¢±íÊéÆÀ»¹¿ÉÒÔ»ñµÃ»ý·ÖºÍ¾Ñé½±Àø£¬ÈÏÕæдԴ´ÊéÆÀ ±»²ÉÄÉΪ¾«ÆÀ¿ÉÒÔ»ñµÃ´óÁ¿½ð±Ò¡¢»ý·ÖºÍ¾Ñé½±ÀøŶ£¡