°´¼üÅÌÉÏ·½Ïò¼ü ¡û »ò ¡ú ¿É¿ìËÙÉÏÏ·ҳ£¬°´¼üÅÌÉ쵀 Enter ¼ü¿É»Øµ½±¾ÊéĿ¼ҳ£¬°´¼üÅÌÉÏ·½Ïò¼ü ¡ü ¿É»Øµ½±¾Ò³¶¥²¿£¡
¡ª¡ª¡ª¡ªÎ´ÔĶÁÍꣿ¼ÓÈëÊéÇ©ÒѱãÏ´μÌÐøÔĶÁ£¡
BITMAPCOREHEADER¡¡¡¡¡¡ENDS
¡¡
BITMAPINFOHEADER¡¡STRUCT
¡¡¡¡bcSize¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡DWORD¡¡¡¡¡¡¡¡¡¡£¿¡¡¡¡¡¡¡¡£»±¾½á¹¹³¤¶È
¡¡¡¡bcWidth¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡WORD¡¡¡¡¡¡¡¡¡¡¡¡£¿¡¡¡¡¡¡¡¡£»Î»Í¼¿í¶È
¡¡¡¡bcHeight¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡WORD¡¡¡¡¡¡¡¡¡¡¡¡£¿¡¡¡¡¡¡¡¡£»Î»Í¼¸ß¶È
¡¡¡¡bcPlanes¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡WORD¡¡¡¡¡¡¡¡¡¡¡¡£¿¡¡¡¡¡¡¡¡£»Î»Í¼µÄɫƽÃæÊý
¡¡¡¡bcBitCount¡¡¡¡¡¡¡¡¡¡¡¡¡¡WORD¡¡¡¡¡¡¡¡¡¡¡¡£¿¡¡¡¡¡¡¡¡£»Î»Í¼µÄÑÕÉ«Éî¶È
¡¡¡¡bipression¡¡¡¡¡¡¡¡DWORD¡¡¡¡¡¡¡¡¡¡£¿¡¡¡¡¡¡¡¡£»Î»Í¼µÄѹËõ·½Ê½
¡¡¡¡biSizeImage¡¡¡¡¡¡¡¡¡¡¡¡DWORD¡¡¡¡¡¡¡¡¡¡£¿¡¡¡¡¡¡¡¡£»Í¼Ðγߴç
¡¡¡¡biXPelsPerMeter¡¡¡¡DWORD¡¡¡¡¡¡¡¡¡¡£¿¡¡¡¡¡¡¡¡£»Í¼ÐÎx·½Ïò·Ö±æÂÊ£¬µ¥Î»ÊÇÏñËØ/Ã×
¡¡¡¡biYPelsPerMeter¡¡¡¡DWORD¡¡¡¡¡¡¡¡¡¡£¿¡¡¡¡¡¡¡¡£»Í¼ÐÎy·½Ïò·Ö±æÂÊ£¬µ¥Î»ÊÇÏñËØ/Ã×
¡¡¡¡biClrUsed¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡DWORD¡¡¡¡¡¡¡¡¡¡£¿
¡¡¡¡biClrImportant¡¡¡¡¡¡DWORD¡¡¡¡¡¡¡¡¡¡£¿
BITMAPINFOHEADER¡¡¡¡¡¡ENDS
ÕâÁ½¸öÊý¾Ý½á¹¹Ö÷Òª°üº¬ÁËλͼµÄһЩ²ÎÊý£¬ÔÚÕâЩÊý¾Ý½á¹¹µÄºóÃ棬¾ÍÊÇλͼµÄÏñËØÊý¾ÝÁË£¬Õû¸öbmpÎļþ¾ÍÓÉÕâ3²¿·Ö×é³É¡£
ҪʹÓÃDIB£¬¿ÉÒÔÊ×ÏȽ«Õû¸öÎļþ¶Áµ½ÄÚ´æÖУ¬È»ºó´ÓÕâЩÊý¾Ý½á¹¹ÖеÃ֪λͼµÄ¸÷ÖÖ²ÎÊý£¬×îºóʹÓÃSetDIBitsToDeviceº¯Êý½«Î»Í¼Êý¾Ý¸´ÖƵ½Ò»¸öhDCÖУ¬Èç¹ûÕâ¸öhDC¶ÔÓ¦Ò»¸öδ³õʼ»¯µÄλͼ£¬ÄÇô¾ÍÏ൱Óڵõ½ÁË°üº¬´ÅÅÌbmpλͼÊý¾ÝµÄλͼ¾ä±ú£¬²¢ÇÒ¿ÉÒÔÔÚÈκεط½Ê¹ÓÃËü¡£µ±È»£¬ÔÚÕâÒÔºó¿ÉÒÔ½«¶ÁÈëÎļþÊý¾ÝµÄÄÚ´æÊͷŵô¡£
SetDIBitsToDeviceº¯ÊýµÄÓ÷¨ÊÇ£º
invoke¡¡¡¡SetDIBitsToDevice£»hDC£»xDest£»yDest£»
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡dwWidth£»dwHeight£»xSrc£»ySrc£»uStartScan£»cScanLines£»
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡lpvBits£»lpbmi£»fuColorUse
hDCÊÇÄ¿µÄDCµÄ¾ä±ú£¬xDestºÍyDestÖ¸¶¨ÁËλͼ¸´ÖƵ½hDCµÄ×óÉϽÇλÖã¬dwWidthºÍdwHeightÖ¸¶¨ÁËÒª¸´ÖƵĿí¶ÈºÍ¸ß¶È£¬xSrcºÍySrcÖ¸¶¨DIBÖÐÒª¸´ÖƵÄ×óÉϽÇλÖã¬uStartScanºÍcScanLinesÖ¸¶¨¿ªÊ¼¸´ÖƵÄɨÃèÏߺÍÒª¸´ÖƵÄɨÃèÏßÊý£¬×îºó£¬lpvBitsÖ¸ÏòDIBÖеÄÏñËØÊý¾Ý²¿·Ö£¬lpbmiÖ¸ÏòDIBÖеÄBITMAPINFO»òBITMAPCOREINFO½á¹¹£¬fuColorUseÖ¸¶¨ÁËDIBÖÐÊý¾ÝµÄÀàÐÍ£¬ÓÃDIB_RGB_COLORS±íʾÊý¾ÝÊÇRGBÀàÐ͵ġ£
×Ó³ÌÐò_CreateDIBitmap·ÖÎöÒ»¸öDIBÎļþµÄ²ÎÊý²¢·µ»Ø°üº¬Õû¸öDIBλͼÊý¾ÝµÄλͼ¾ä±ú£¬¶ÁÕß¿ÉÒÔÔÚÈκεط½Ê¹ÓÃÕâ¸öλͼ¾ä±ú¡£×Ó³ÌÐòµÄÊäÈë²ÎÊý_hWndÓÃÀ´»ñÈ¡²Î¿¼hDCµÄ´°¿Ú¾ä±ú£¬_lpFileDataÊǽ«DIBÎļþÕû¸ö¶ÁÈëÄÚ´æºóµÄÄÚ´æÖ¸Õë¡£´úÂëÈçÏ£º
_CreateDIBitmap¡¡¡¡¡¡¡¡¡¡¡¡proc¡¡¡¡¡¡_hWnd£»_lpFileData
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡local¡¡¡¡¡¡¡¡@lpBitmapInfo£»@lpBitmapBits
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡local¡¡¡¡¡¡¡¡@dwWidth£»@dwHeight
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡local¡¡¡¡¡¡¡¡@hDc£»@hBitmap
¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡pushad
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡¡¡¡¡¡¡¡¡¡¡@hBitmap£»0
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡¡¡¡¡¡¡¡¡¡¡esi£»_lpFileData
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡¡¡¡¡¡¡¡¡¡¡eax£»BITMAPFILEHEADER¡£bfOffBits¡¡£§esi£§
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡add¡¡¡¡¡¡¡¡¡¡¡¡eax£»esi
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡¡¡¡¡¡¡¡¡¡¡@lpBitmapBits£»eax
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡add¡¡¡¡¡¡¡¡¡¡¡¡esi£»sizeof¡¡BITMAPFILEHEADER
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡¡¡¡¡¡¡¡¡¡¡@lpBitmapInfo£»esi
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£if¡¡¡¡¡¡¡¡¡¡¡¡BITMAPINFO¡£bmiHeader¡£biSize¡¡£§esi£§¡¡¡¡sizeof¡¡BITMAPCOREHEADER
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡movzx¡¡¡¡eax£»BITMAPCOREHEADER¡£bcWidth¡¡£§esi£§
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡movzx¡¡¡¡ebx£»BITMAPCOREHEADER¡£bcHeight¡¡£§esi£§
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£else
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡¡¡¡¡¡¡¡¡eax£»BITMAPINFOHEADER¡£biWidth¡¡£§esi£§
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡¡¡¡¡¡¡¡¡ebx£»BITMAPINFOHEADER¡£biHeight¡¡£§esi£§
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£endif
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡¡¡¡¡¡¡¡¡¡¡@dwWidth£»eax
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡¡¡¡¡¡¡¡¡¡¡@dwHeight£»ebx
£»********************************************************************
£»¡¡½¨Á¢¿ÕµÄ¡¡Bitmap¡¡Object
£»********************************************************************
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡¡¡GetDC£»_hWnd
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡push¡¡¡¡¡¡¡¡¡¡eax
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡¡¡CreatepatibleDC£»eax
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡¡¡¡¡¡¡¡¡¡¡@hDc£»eax
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡pop¡¡¡¡¡¡¡¡¡¡¡¡eax
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡push¡¡¡¡¡¡¡¡¡¡eax
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡¡¡CreatepatibleBitmap£»eax£»@dwWidth£»@dwHeight
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡¡¡¡¡¡¡¡¡¡¡@hBitmap£»eax
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡¡¡SelectObject£»@hDc£»@hBitmap
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡pop¡¡¡¡¡¡¡¡¡¡¡¡eax
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡¡¡ReleaseDC£»hWinMain£»eax
£»********************************************************************
£»¡¡½«ÎļþÄÚÈÝÉèÖõ½½¨Á¢µÄ¡¡Bitmap¡¡ÖÐ
£»********************************************************************
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡¡¡SetDIBitsToDevice£»@hDc£»0£»0£»@dwWidth£»@dwHeight£»
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡0£»0£»0£»@dwHeight£»
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡@lpBitmapBits£»@lpBitmapInfo£»DIB_RGB_COLORS
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£if¡¡¡¡¡¡¡¡¡¡¡¡eax¡¡¡¡0
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡DeleteObject£»@hBitmap
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡@hBitmap£»0
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£endif
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡¡¡DeleteDC£»@hDc
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡popad
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡¡¡¡¡¡¡¡¡¡¡eax£»@hBitmap
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ret
¡¡
_CreateDIBitmap¡¡¡¡¡¡¡¡¡¡¡¡endp
_CreateDIBitmap×Ó³ÌÐòÊ×ÏÈ·ÖÎöDIBÎļþµÄÊý¾Ý£¬È·¶¨BITMAPFILEHEADERºóÃæµÄÊý¾Ý½á¹¹ÊÇBITMAPINFO»¹ÊÇBITMAPCOREINFO£¬²¢´Ó½á¹¹ÖлñȡλͼµÄ¸ß¶ÈºÍ¿í¶È£¬È»ºó½¨Á¢Ò»¸öδ³õʼ»¯µÄλͼ£¬²¢ÓÃSetDIBitsToDeviceº¯Êý½«Î»Í¼Êý¾Ý¿½±´µ½Õâ¸öλͼÖУ¬×îºó½«Î»Í¼¾ä±ú·µ»ØÒÔ¹©ºóÃæʹÓá£
¡¡
À´Ô´£ºµç×Ó¹¤Òµ³ö°æÉç¡¡×÷ÕߣºÂÞÔƱò¡¡ÉÏÒ»Ò³¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡»ØÊéÄ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÏÂÒ»Ò³¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
ÉÏÒ»Ò³¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡»ØÊéÄ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÏÂÒ»Ò³¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡
µÚ7Õ¡¡Í¼ÐβÙ×÷
7¡£4¡¡¿é´«ËͲÙ×÷£¨1£©
¡¡¡¡¡¡¡¡
³ýÁË7¡£2С½ÚÖеĻæͼº¯Êý£¬¿é´«Ëͺ¯ÊýÒ²ÊÇÖØÒªµÄͼÐβÙ×÷º¯Êý¡£¿é´«ËÍÖ¸°ÑԴλÖÃÖеÄÊý¾Ý¿é°´ÕÕÖ¸¶¨µÄ·½Ê½´«Ë͵½Ä¿µÄλÖÃÖС£°ÑÄÚ´æÖеÄλͼ¸´ÖƵ½´°¿Ú¿Í»§ÇøÒÔ¼°ÔÚ²»Í¬µÄDCÖи´ÖÆͼÐÎÊý¾Ý¶¼ÒªÓõ½¿é´«ËͲÙ×÷£¬¿é´«ËÍÍê³ÉµÄ¹¤×÷¾ÍÏ൱ÓÚͼÐÎÖ®¼äµÄ¿½±´¹¤×÷¡£¿é´«Ëͺ¯ÊýÓÐPatBlt£¬BitBlt£¬MaskBlt£¬PlgBlt£¬TransparentBltºÍStretchBltµÈ¡£
7¡£4¡£1¡¡¡¡¿é´«ËÍ·½Ê½
Óë7¡£2¡£4С½ÚÖнéÉܵĻæͼº¯ÊýµÄROP²Ù×÷ÀàËÆ£¬¿é´«Ëͺ¯ÊýÒ²ÊÇ¿ÉÒÔÓÃROPÂëÀ´¶¨ÒåµÄ´«ËÍ·½Ê½£¬µ«¿é´«Ëͺ¯ÊýµÄROPÂ붨Ò岻ͬÓÚ7¡£2¡£4С½ÚÖеÄROPÂ룬ÒòΪÕâÀïÉæ¼°µÄ²Ù×÷¶ÔÏó¸ü¶à¡£
¿é´«Ë͵ÄROPÂëÊÇÒ»¸ö32λµÄÕûÊý£¬¶ÔÓ¦µÄ²Ù×÷Éæ¼°3ÖÖÔʼÊý¾Ý£ºÔ´ÏñËØ¡¢Ä¿±êÏñËغͻˢ£¬¿é´«ËͲÙ×÷µÄ½á¹ûÊÇÄ¿±êÏñËصÄÊý¾Ý±»3ÖÖÔʼÊý¾ÝµÄ¼ÆËã½á¹ûÌæ»»µô¡£
²¢²»ÊÇÿһÖÖROPÂ붼ҪÓõ½È«²¿3ÖÖÔʼÊý¾Ý£¬ÓеÄÉõÖÁÁ¬1ÖÖÒ²Óò»µ½£¬ÀýÈçÈ«ºÚ»òÕßÈ«°×µÄROPÂë¡£¿é´«Ëͺ¯ÊýʹÓõÄROPÂë×ܹ²ÓÐ256ÖÖ£¬ËüÃÇÊÇ3ÖÖÔʼÊý¾Ý½øÐв»Í¬Î»²Ù×÷£¨È¡·´¡¢Óë¡¢»òºÍÒì»ò£©µÄ×éºÏ£¬µ«ÓÐЩROPÂë¶ÔÓ¦µÄ²Ù×÷½á¹ûʵÔÚÊÇÌ«ÄÑÏëÏñÁË£¬±ÈÈçROPÂë0e20746¶ÔÓ¦µÄ²Ù×÷ÊÇ£¨£¨Ä¿±êÏñËØ¡¡xor¡¡»Ë¢£©¡¡and¡¡Ô´ÏñËØ£©¡¡xor¡¡Ä¿±êÏñËØ£©£¬Æ¾Õâ¸öËãʽµÄÈ·±È½ÏÄÑÒÔÏëÏñ×îºóµÃµ½µÄλͼÊÇʲôÑù×ӵģ¡ÔÚʵ¼ÊʹÓÃÖкܶàËã·¨×éºÏÒ²²¢²»ÊÇÄÇôÓÐÓã¬ËùÒÔWindowsÖ»¶Ô15ÖÖ×î³£ÓõÄROPÂ붨ÒåÁËÔ¤¶¨ÒåµÄÖú¼Ç´úÂ룬¡¡
Èç±í7¡£6Ëùʾ£¬¶ÔÓÚÕâЩROPÂ룬ÔÚ³ÌÐòÖпÉÒÔÖ±½ÓʹÓÃÖú¼ÇÂ룬¶ÔÓÚ±íÖÐûÓÐÁгöµÄROPÂ룬¿ÉÒÔÖ±½ÓʹÓÃ16½øÖÆÊýÖµ¡£
±í7¡£6¡¡¡¡¿é´«Ëͺ¯ÊýÖÐʹÓõÄROPÂë
ROPÂë
¡¡16½øÖÆÊýÖµ
¡¡ÐÂÏñËصãËã·¨
¡¡
BLACKNESS
¡¡00000042h
¡¡È«²¿Îª0
¡¡
DSTINVERT
¡¡00550009h
¡¡not¡¡Ä¿±êÏñËØ
¡¡
MERGECOPY
¡¡00c000cah
¡¡»Ë¢¡¡and¡¡Ô´ÏñËØ
¡¡
MERGEPAINT
¡¡00bb0226h
¡¡£¨not¡¡Ô´ÏñËØ£©or¡¡Ä¿±êÏñËØ
¡¡
NOTSRCCOPY
¡¡00330008h
¡¡not¡¡Ô´ÏñËØ
¡¡
NOTSRCERASE
¡¡001100a6h
¡¡not£¨Ô´ÏñËØ¡¡or¡¡Ä¿±êÏñËØ£©
¡¡
PATCOPY
¡¡00f00021h
¡¡»Ë¢
¡¡
PATINVERT
¡¡005a0049h
¡¡»Ë¢¡¡xor¡¡Ä¿±êÏñËØ
¡¡
PATPAINT
¡¡00fb0a09h
¡¡»Ë¢¡¡or¡¡£¨not¡¡Ô´ÏñËØ£©or¡¡Ä¿±êÏñËØ
¡¡
SRCAND
¡¡008800c6h
¡¡Ô´ÏñËØ¡¡and¡¡Ä¿±êÏñËØ
¡¡
SRCCOPY
¡¡00cc0020h
¡¡Ô´ÏñËØ
¡¡
SRCERASE
¡¡00440328h
¡¡Ô´ÏñËØ¡¡and£¨not¡¡Ä¿±êÏñËØ£©
¡¡
SRCINVERT
¡¡00660046h
¡¡Ô´ÏñËØ¡¡xor¡¡Ä¿±êÏñËØ
¡¡
SRCPAINT
¡¡00ee0086h
¡¡Ô´ÏñËØ¡¡or¡¡Ä¿±êÏñËØ
¡¡
WHITENESS
¡¡00ff0062h
¡¡È«²¿Îª1
¡¡
7¡£4¡£2¡¡¡¡¿é´«Ëͺ¯Êý
1¡£¡¡PatBltº¯Êý
PatBltº¯ÊýÍê³ÉµÄÊÇ¡°Í¼°¸¿é´«ËÍ¡±µÄ¹¦ÄÜ£¬¼´¡°Pattern¡¡Block¡¡Transfer¡±¡£Ê¹Óõķ½·¨ÊÇ£º
invoke¡¡¡¡PatBlt£¬hDC£¬xDest£¬yDest£¬dwWidth£¬dwHeight£¬dwROP
Õâ¸öº¯Êý½«µ±Ç°»Ë¢µÄͼ°¸¿½±´µ½hDCÖÐÒÔ£¨xDest£¬yDest£©Îª×óÉϽÇ×ø±ê£¬dwWidthΪ¿í¶È£¬dwHeigthΪ¸ß¶ÈµÄÇøÓòÖУ¬´«Ë͵ķ½Ê½ÓÉdwROPÖеÄROPÂëÖ¸¶¨¡£PatBltº¯ÊýµÄ¹¦Äܺ;ØÐÎÌî³äº¯ÊýFillRectÓëInvertRectµÈÊǺÜÏñµÄ£¬µ«Ëü°üº¬ÁËËüÃǵÄÈ«²¿¹¦ÄÜ£¬ÈçROPÂëÖ¸¶¨DSTINVERT£¬ÄÇôPatBltµÄ¹¦ÄܾÍÏ൱ÓÚInvertRectº¯Êý£»ROPÂëÖ¸¶¨ÎªPATCOPYµÄʱºò£¬PatBltµÄ¹¦ÄÜÏ൱ÓÚFillRectº¯Êý¡£
ÔÚBmpClock¡£asmµÄ_CreateBackGround×Ó³ÌÐòÖУ¬µ±½¨Á¢±³¾°Í¼Æ¬µÄʱºò£¬¾ÍÊÇÓÃPATCOPY·½Ê½µÄPatBltº¯ÊýÓÃ×ÊÔ´Öеı³¾°Í¼Æ¬Ìî³äÕû¸öʱÖÓ±³¾°µÄ¡£
ÔÚËùÓеÄROPÂëÖУ¬¿ÉÒÔÓÃÔÚPatBltº¯ÊýÖеÄÖ»ÓÐÒ»²¿·Ö£¬ËùÓÐËã·¨Öаüº¬Ô´ÏñËصÄROPÂëÔÚPatBltº¯Ê