°´¼üÅÌÉÏ·½Ïò¼ü ¡û »ò ¡ú ¿É¿ìËÙÉÏÏ·ҳ£¬°´¼üÅÌÉ쵀 Enter ¼ü¿É»Øµ½±¾ÊéĿ¼ҳ£¬°´¼üÅÌÉÏ·½Ïò¼ü ¡ü ¿É»Øµ½±¾Ò³¶¥²¿£¡
¡ª¡ª¡ª¡ªÎ´ÔĶÁÍꣿ¼ÓÈëÊéÇ©ÒѱãÏ´μÌÐøÔĶÁ£¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡_DeleteBackGround
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡DestroyMenu£»hMenu
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ret
¡¡
_Quit¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡endp
£»¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·
_ProcWinMain¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡proc¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡uses¡¡ebx¡¡edi¡¡esi¡¡hWnd£»uMsg£»wParam£»lParam
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡local¡¡¡¡¡¡@stPS£ºPAINTSTRUCT
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡local¡¡¡¡¡¡@hDC
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡local¡¡¡¡¡¡@stPos£ºPOINT
¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡¡¡¡¡¡¡¡¡eax£»uMsg
£»********************************************************************
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£if¡¡¡¡¡¡¡¡¡¡eax¡¡¡¡¡¡WM_TIMER
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡_CreateClockPic
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡InvalidateRect£»hWnd£»NULL£»FALSE
£»********************************************************************
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£elseif¡¡eax¡¡¡¡¡¡WM_PAINT
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡BeginPaint£»hWnd£»addr¡¡@stPS
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡@hDC£»eax
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡eax£»@stPS¡£rcPaint¡£right
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡sub¡¡eax£»@stPS¡£rcPaint¡£left
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡ecx£»@stPS¡£rcPaint¡£bottom
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡sub¡¡ecx£»@stPS¡£rcPaint¡£top
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡BitBlt£»@hDC£»
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡@stPS¡£rcPaint¡£left£»@stPS¡£rcPaint¡£top£»
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡eax£»ecx£»hDcClock£»@stPS¡£rcPaint¡£left£»
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡@stPS¡£rcPaint¡£top£»SRCCOPY
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡EndPaint£»hWnd£»addr¡¡@stPS
£»********************************************************************
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£elseif¡¡eax¡¡¡¡¡¡WM_CREATE
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡¡¡¡¡¡¡¡¡eax£»hWnd
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡¡¡¡¡¡¡¡¡hWinMain£»eax
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡_Init
£»********************************************************************
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£elseif¡¡eax¡¡¡¡¡¡WM_MAND
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡¡¡¡¡¡¡¡¡eax£»wParam
£»********************************************************************
£»ÓÉÓÚÓ¡Ë¢¿í¶ÈµÄÎÊÌ⣬ӰÏìÔ´´úÂëµÄËõ½ø¸ñʽ£¬Çë¶ÁÕß×¢Òâ
£»********************************************************************
¡£if¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ax¡¡¡¡¡¡¡¡IDM_BACK1
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡¡¡¡¡¡¡¡¡dwNowBack£»IDB_BACK1
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡CheckMenuRadioItem£»hMenu£»IDM_BACK1£»IDM_BACK2£»IDM_BACK1£»NULL
¡£elseif¡¡¡¡¡¡¡¡¡¡ax¡¡¡¡¡¡¡¡IDM_BACK2
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡¡¡¡¡¡¡¡¡dwNowBack£»IDB_BACK2
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡CheckMenuRadioItem£»hMenu£»IDM_BACK1£»IDM_BACK2£»IDM_BACK2£»NULL
¡£elseif¡¡¡¡¡¡¡¡¡¡ax¡¡¡¡¡¡¡¡IDM_CIRCLE1
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡¡¡¡¡¡¡¡¡dwNowCircle£»IDB_CIRCLE1
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡CheckMenuRadioItem£»hMenu£»IDM_CIRCLE1£»IDM_CIRCLE2£»
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡IDM_CIRCLE1£»NULL
¡£elseif¡¡¡¡¡¡¡¡¡¡ax¡¡¡¡¡¡¡¡IDM_CIRCLE2
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡¡¡¡¡¡¡¡¡dwNowCircle£»IDB_CIRCLE2
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡CheckMenuRadioItem£»hMenu£»IDM_CIRCLE1£»IDM_CIRCLE2£»
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡IDM_CIRCLE2£»NULL
¡£elseif¡¡¡¡¡¡¡¡¡¡ax¡¡¡¡¡¡¡¡IDM_EXIT
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡call¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡_Quit
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡xor¡¡¡¡¡¡¡¡¡¡eax£»eax
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ret
¡£endif
£»********************************************************************
£»¡¡»Ö¸´Ô´´úÂëËõ½ø¸ñʽ
£»********************************************************************
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡_DeleteBackGround
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡_CreateBackGround
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡_CreateClockPic
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡InvalidateRect£»hWnd£»NULL£»FALSE
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£elseif¡¡eax¡¡¡¡¡¡WM_CLOSE
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡call¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡_Quit
£»********************************************************************
£»¡¡°´ÏÂÓÒ¼üʱµ¯³öÒ»¸öPOPUP²Ëµ¥
£»********************************************************************
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£elseif¡¡eax¡¡¡¡¡¡WM_RBUTTONDOWN
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡GetCursorPos£»addr¡¡@stPos
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡TrackPopupMenu£»hMenu£»TPM_LEFTALIGN£»
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡@stPos¡£x£»@stPos¡£y£»NULL£»hWnd£»NULL
£»********************************************************************
£»¡¡ÓÉÓÚûÓбêÌâÀ¸£¬ÏÂÃæ´úÂëÓÃÓÚ°´ÏÂ×ó¼üʱÒƶ¯´°¿Ú
£»¡¡UpdateWindow£º¼´Ê±Ë¢Ð£¬·ñÔòÒªµÈµ½·Å¿ªÊó±êʱ´°¿Ú²Å»áÖØ»
¡¡
À´Ô´£ºµç×Ó¹¤Òµ³ö°æÉç¡¡×÷ÕߣºÂÞÔƱò¡¡ÉÏÒ»Ò³¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡»ØÊéÄ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÏÂÒ»Ò³¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
ÉÏÒ»Ò³¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡»ØÊéÄ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÏÂÒ»Ò³¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡
µÚ7Õ¡¡Í¼ÐβÙ×÷
7¡£3¡¡´´½¨ºÍʹÓÃλͼ£¨4£©
¡¡¡¡¡¡¡¡
£»********************************************************************
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£elseif¡¡eax¡¡¡¡¡¡WM_LBUTTONDOWN
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡SetCursor£»hCursorMove
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡UpdateWindow£»hWnd
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡ReleaseCapture
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡¡¡SendMessage£»hWnd£»WM_NCLBUTTONDOWN£»HTCAPTION£»0
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡SetCursor£»hCursorMain
£»********************************************************************
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£else
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡DefWindowProc£»hWnd£»uMsg£»wParam£»lParam
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ret
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£endif
£»********************************************************************
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡xor¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡eax£»eax
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ret
¡¡
_ProcWinMain¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡endp
£»¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·
_WinMain¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡proc
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡local¡¡¡¡¡¡@stWndClass£ºWNDCLASSEX
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡local¡¡¡¡¡¡@stMsg£ºMSG
¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡GetModuleHandle£»NULL
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡¡¡¡¡¡¡¡¡hInstance£»eax
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡LoadCursor£»hInstance£»IDC_MOVE
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡¡¡¡¡¡¡¡¡hCursorMove£»eax
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡LoadCursor£»hInstance£»IDC_MAIN
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡¡¡¡¡¡¡¡¡hCursorMain£»eax
£»********************************************************************
£»¡¡×¢²á´°¿ÚÀà
£»********************************************************************
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡RtlZeroMemory£»addr¡¡@stWndClass£»sizeof¡¡@stWndClass
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡LoadIcon£»hInstance£»ICO_MAIN
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡¡¡¡¡¡¡¡¡@stWndClass¡£hIcon£»eax
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡¡¡¡¡¡¡¡¡@stWndClass¡£hIconSm£»eax
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡push¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡hCursorMain
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡pop¡¡¡¡¡¡¡¡¡¡@stWndClass¡£hCursor
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡push¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡hInstance
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡pop¡¡¡¡¡¡¡¡¡¡@stWndClass¡£hInstance
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡¡¡¡¡¡¡¡¡@stWndClass¡£cbSize£»sizeof¡¡WNDCLASSEX
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡¡¡¡¡¡¡¡¡@stWndClass¡£style£»CS_HREDRAW¡¡or¡¡CS_VREDRAW
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡¡¡¡¡¡¡¡¡@stWndClass¡£lpfnWndProc£»offset¡¡_ProcWinMain
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡¡¡¡¡¡¡¡¡@stWndClass¡£hbrBackground£»COLOR_WINDOW¡¡£«¡¡1
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡¡¡¡¡¡¡¡¡@stWndClass¡£lpszClassName£»offset¡¡szClassName
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡RegisterClassEx£»addr¡¡@stWndClass
£»********************************************************************
£»¡¡½¨Á¢²¢ÏÔʾ´°¿Ú
£»********************************************************************
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡CreateWindowEx£»NULL£»
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡offset¡¡szClassName£»offset¡¡szClassName£»
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡WS_POPUP¡¡or¡¡WS_SYSMENU£»
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡100£»100£»CLOCK_SIZE£»CLOCK_SIZE£»
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡NULL£»NULL£»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¡¡¡¡TranslateMessage£»addr¡¡@stMsg
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡DispatchMessage£»addr¡¡@stMsg
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£endw
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ret
¡¡
_WinMain¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡endp
£»¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·
start£º
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡call¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡_WinMain
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡ExitProcess£»NULL
£»¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡end¡¡¡¡¡¡¡¡¡¡start
Ê×Ïȼòµ¥·ÖÎöһϳÌÐòµÄ½á¹¹£¬Ö÷³ÌÐòÖÐÏÈÓÃRegisterClassEx×¢²á´°¿ÚÀ࣬ÔÙÓÃCreateWindowEx½¨Á¢´°¿ÚµÄ¹ý³Ì£¬ÕâÊDZê×¼µÄ´´½¨´°¿ÚµÄ´úÂ룬ΩһµÄÌØÊâÖ®´¦Êǽ¨Á¢´°¿ÚʹÓõĴ°¿Ú·ç¸ñÊÇWS_POPUP»òWS_SYSMENU£¬ÕâÑù½¨Á¢µÄ´°¿ÚûÓбêÌâÀ¸£¬ÒÔ±ãÒÔºóʵÏÖÔ²ÐεĴ°¿Ú¡£
³ÌÐòÖеÄ×ø±êËã·¨ºÍ7¡£2½ÚµÄClock¡£asmÊÇÒ»ÑùµÄ£¬ËùÒÔÓÐЩ×Ó³ÌÐòÑØÓÃÁËÉÏÒ»¸ö³ÌÐòÖеÄÏà¹Ø×Ó³ÌÐò£¬Èç¼ÆËã×ø±êµÄ_CalcXºÍ_CalcY£¬»æ»Ö¸ÕëµÄ_DrawLine×Ó³ÌÐòµÈ¡£
ÔÚ´°¿Ú¹ý³ÌµÄWM_CREATEÏûÏ¢ÖУ¬³ÌÐòÓÃCreatePopupMenu´´½¨ÁËÒ»¸öPopup²Ëµ¥£¬ÓÃÀ´ÔÚ°´ÏÂÓÒ¼üµÄʱºòµ¯³ö¸Ã²Ëµ¥£¬²¢¶à´Îµ÷ÓÃAppendMenu´´½¨ÐèÒªµÄ²Ëµ¥ÏÏà¹ØÄÚÈݼûµÚ5Õµġ°²Ëµ¥¡±Ò»½Ú£©¡£È»ºó£¬³ÌÐòÓÃCreateEllipticRgn½¨Á¢Ò»¸öÇøÓò£¬²¢ÓÃSetWindowRgnº¯Êý°Ñ´°¿ÚÉèÖóÉÔ²ÐΣ¬ÕâÁ½¸öº¯ÊýÔÚ±¾ÕµÄ×îºóÒ»½Ú½éÉÜ¡£½ÓÏÂÀ´£¬³ÌÐòÓÃSetWindowPosº¯Êý°Ñ´°¿ÚÉèÖÃΪ¡°×ÜÔÚ×îÇ°Ã桱¡£ÔÚWM_CREATEÏûÏ¢µÄ×îºó£¬³ÌÐòµ÷ÓÃ_CreateBackGroundºÍ_CreateClockPic´´½¨±³¾°Î»Í¼ºÍʱÖÓλͼ£¬ÕâÊÇÕâÒ»½ÚÖÐÒªÏêϸ½éÉܵÄÄÚÈÝ¡£ºÍÇ°Ãæ¼òµ¥µÄʱÖÓ³ÌÐòÀàËÆ£¬±¾³ÌÐòÒ²½¨Á¢ÁËÒ»¸öÖÜÆÚΪ1sµÄ¶¨Ê±Æ÷ÓÃÀ´Ë¢ÐÂÆÁÄ»¡£
ÔÚÑ¡Ôñ²Ëµ¥ºóµÄWM_MANDÏûÏ¢ÖУ¬³ÌÐòµ÷ÓÃ_DeleteBackGround×Ó³ÌÐòÏÈɾ³ýÔÓеÄλͼ£¬ÔÙµ÷ÓÃ_CreateBackGroundºÍ_CreateClockPic×Ó³ÌÐò²úÉúеı³¾°Î»Í¼ºÍʱÖÓλͼ£¬×îºóµ÷ÓÃInvalidateRectº¯Êý²úÉúWM_PAINTÏûÏ¢ÖØл滿ͻ§Çø¡£
³ÌÐòÓиöÌØÊâÖ®´¦ÊǶÔWM_LBUTTONDOWNÏûÏ¢µÄ´¦Àí£¬ÓÉÓÚ½¨Á¢µÄ´°¿ÚûÓбêÌâÀ¸£¬ËùÒÔÎÞ·¨ÓÃÍ϶¯±êÌâÀ¸µÄ·½·¨Òƶ¯´°¿Ú£¬ÎªÁËÔÚ´°¿Ú¿Í»§ÇøÍ϶¯Êó±ê¾ÍÄܹ»Òƶ¯´°¿Ú£¬±ØÐëÆÛÆWindows£¬ÈÃËüÈÏΪÊÇÔÚÍ϶¯±êÌâÀ¸£¬ËùÒÔÔÚWM_LBUTTONDOWNÏûÏ¢ÖУ¬³ÌÐò·¢ËÍλÖÃΪHTCAPTIONµÄWM_NCLBUTTONDOWNÏûÏ¢£¬ÕâÑù¾ÍÏ൱ÓÚ¸æËßWindowsÓû§°´ÏµÄÊDZêÌâÀ¸¡£Í·Î²´¦µÄÁ½¸öSetCursorº¯ÊýÊÇΪÁË°´ÏÂÊó±êʱÈùâ±ê±ä³ÉÒ»¸öץס¶«Î÷µÄÊÖµÄÐÎ×´¡£
Õû¸ö³ÌÐòµÄ½á¹¹²ÉÓÃͼ7¡£1ÖеÄB½á¹¹£¬Ò²¾ÍÊÇ˵´°¿Ú¿Í»§ÇøµÄ»æ»´úÂëºÍ²úÉúʱÖÓλͼµÄ´úÂëÊÇ·Ö¿ªµÄ£¬³ÌÐòÖн¨Á¢ÁËÁ½¸öλͼµ±×ö»º³åÊý¾Ý£¬µÚÒ»¸öλͼÊDZ³¾°Î»Í¼£¬ÔÚ_CreateBackGround×Ó³ÌÐòÖн¨Á¢£¬Ö»ÓÐÔÚ³ÌÐò³õʼ»¯ÒÔ¼°Ôڲ˵¥ÖÐÑ¡ÔñÁ˲»Í¬µÄ±³¾°ºÍ±ß¿òºó²ÅÐèÒªµ÷ÓÃÕâ¸ö×Ó³ÌÐò£¬ÒԱ㽨Á¢Ðµı³¾°Í¼Æ¬£»µÚ¶þ¸öλͼÊÇÒªÊä³öµ½ÆÁÄ»µÄʱÖÓλͼ£¬ËüÔÚ_CreateClockPic×Ó³ÌÐòÖн¨Á¢£¬Ê±ÖÓλͼÊÇͨ¹ý½«±³¾°Î»Í¼¿½±´¹ýÀ´£¬ÔÙ¸ù¾Ýµ±Ç°Ê±¼ä»ÉÏÖ¸ÕëµÃµ½µÄ£¬³ÌÐòÔÚWM_TIMERÏûÏ¢ÖÐÿÃëÖػһ´ÎеÄʱÖÓͼƬ£¬²¢ÓÃInvalidateRectº¯Êý²úÉúÒ»¸öWM_PAINTÏûÏ¢½«Õâ¸öλͼ¿½±´µ½ÆÁÄ»ÉÏ£¬µ±ÆäËûÔÒò²úÉúWM_PAINTÏûϢʱ£¬³ÌÐò²¢²»´ÓÍ·¿ªÊ¼²úÉú±³¾°Î»Í¼ºÍʱÖÓλͼµÈͼƬ£¬¶øÊÇÖ±½Ó´ÓʱÖÓͼƬÖп½±´Êý¾Ýµ½ÆÁÄ»ÉÏ¡£
ºÃÁË£¬½ÓÏÂÀ´¼ÌÐø·ÖÎö_CreateBackGroundºÍ_CreateClockPic×Ó³ÌÐòÊÇÈçºÎ¶Ôλͼ½øÐд¦ÀíµÄ¡£
7¡£3¡£2¡¡¡¡´´½¨ºÍʹÓÃλͼ
ËùÓлæͼº¯ÊýµÄ²Ù×÷¶ÔÏó¶¼ÊÇ¡°É豸»·¾³¡±£¬¶Ôλͼ²Ù×÷Ò²²»ÀýÍ⡣ΪÁ˶ÔλͼʹÓÃGDIº¯Êý£¬ÐèҪʹÓÃCreatepatibleDCº¯ÊýΪλͼ½¨Á¢Ò»¸öDC£¬È»ºóʹÓÃSelectObjectº¯Êý½«Î»Í¼Ñ¡ÈëÕâ¸öDCÖУ¬ÕâÑù£¬ËùÓжÔÕâ¸öDCµÄ»æͼ²Ù×÷ʵ¼ÊÉϾÍÊÇÔÚ²Ù×÷Õâ¸öλͼ¡£Ã¿Ò»¸öÐèÒª²Ù×÷µÄλͼ¶¼ÐèÒªµ¥¶ÀΪËü´´½¨Ò»¸öDC¡£
³ÌÐòÖг£³£Ê¹ÓÃÔÚ×ÊÔ´ÖÐÔ¤¶¨ÒåµÄλͼ£¬µ«Ò²ÓÐʹÓÃδ³õʼ»¯µÄλͼµÄÇé¿ö£¬ÈçÀý×Ó³ÌÐòµÄ±³¾°Î»Í¼ºÍʱÖÓλͼһ¿ªÊ¼¾ÍÊÇδ³õʼ»¯µÄ£¬ËüÃÇÊdzÌÐò¿ªÊ¼ÔËÐкó²Å±»´´½¨µÄ¡£
ΪÁ˽¨Á¢Ò»¸öδ³õʼ»¯µÄλͼ£¬¿ÉÒÔʹÓÃÒÔϵĺ¯Êý£º
¡¡¡¡¡¡¡¡invoke¡¡¡¡CreatepatibleBitmap£¬hDC£¬dwWidth£¬dwHeight
¡¡¡¡¡¡¡¡mov¡¡hBitmap1£»eax¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£»·½·¨1
¡¡¡¡¡¡¡¡invoke¡¡¡¡CreateBitmap£¬dwWidth£¬dwHeight£¬dwPlanes£¬dwBitsPerPel£¬NULL
¡¡¡¡¡¡¡¡mov¡¡hBitmap2£»eax¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£»·½·¨2
¡¡
À´Ô´£ºµç×Ó¹¤Òµ³ö°æÉç¡¡×÷ÕߣºÂÞÔƱò¡¡ÉÏÒ»Ò³¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡»ØÊéÄ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÏÂÒ»Ò³¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
ÉÏÒ»Ò³¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡»ØÊéÄ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÏÂÒ»Ò³¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡
µÚ7Õ¡¡Í¼ÐβÙ×÷
7¡£3¡¡´´½¨ºÍʹÓÃλͼ£¨5£©
¡¡¡¡¡¡¡¡
´´½¨Ò»¸öλͼÐèÒªµÄ²ÎÊýÊǸ߶ȡ¢¿í¶ÈÒÔ¼°ÑÕÉ«Éî¶È£¬Òª´´½¨Î»Í¼±ØÐëµÃÖªÕâЩ²ÎÊý¡£Ê¹ÓÃCreatepatibleBitmap´´½¨Î»Í¼µÄʱºò£¬²ÎÊýÖÐÓÐÒ»¸öhDC£¬ÕâÊǸö²Î¿¼hDC£¬Ò²¾ÍÊÇ˵£¬ÐÂλͼµÄÑÕÉ«Éî¶ÈºÍhDC¶ÔÓ¦µÄ¡°É豸»·¾³¡±µÄÑÕÉ«Éî¶ÈÏàͬ£¨×¢Ò⣺ÓиöhDC²ÎÊýµÄÒâ˼²¢²»Êǽ«´´½¨µÄλͼѡÈëÕâ¸öhDCÖУ©¡£CreateBitmapº¯ÊýÔòÖ±½ÓÔÚ²ÎÊýdwPlanesºÍdwBitsPerPelÖÐÖ¸¶¨ÁËÑÕÉ«Éî¶È¡£Á½¸öº¯ÊýµÄdwWidthºÍdwHeight²ÎÊýÖ¸¶¨´´½¨µÄλͼµÄ¿í¶ÈºÍ¸ß¶È¡£
ÔÚÀý×Ó³ÌÐòµÄ_CreateBackGround×Ó³ÌÐòÖУ¬ÎªÁ˽¨Á¢±³¾°Í¼Æ¬ºÍʱÖÓͼƬ£¬ÐèÒª½¨Á¢Á½¸öδ³õʼ»¯µÄλͼºÍ²Ù×÷ËüÃǵÄDC£¬ËùÒÔ³ÌÐòÒ»¿ªÊ¼ÓÃGetDCº¯Êý»ñÈ¡Ö÷´°¿ÚµÄhDCÀ´µ±×ö²Î¿¼DC£¬È»ºóÓÃCreatepatibleDCº¯Êý½¨Á¢ÁËÁ½¸öDC£¨¾ä±ú·ÅÔÚÈ«¾Ö±äÁ¿hDcBackºÍhDcClockÖУ©£¬²¢ÓÃCreatepatibleBitmap½¨Á¢ÁËÁ½¸öλͼ£¨¾ä±ú·ÅÈëhBmpBackºÍhBmpClockÖУ©£¬½ÓÏÂÀ´ÓÃSelectObject½«ÕâÁ½¸öλͼѡÈëн¨µÄhDCÖС£
´´½¨±³¾°Í¼Æ¬µÄ¹ý³ÌÖл¹ÒªÓõ½×ÊÔ´Öеı³¾°Í¼Æ¬¡¢±ß¿òͼƬºÍ±ß¿òµÄÕÚÑÚͼƬ£¬¶ÔÓÚÕâЩͼƬ£¬³ÌÐòÓÃLoadBitmapº¯Êý×°È룬²¢Ê¹ÓÃCreatepatibleDCΪÿ¸öͼƬ½¨Á¢Ò»¸öDC¡£
¶ÔÓÚ²»ÔÙʹÓõÄλͼ£¬ÒªÓÃDeleteObjectº¯Êý½«ËüÃÇɾ³ý¡£ËùÒÔÔÚ×Ó³ÌÐòµÄ×îºó£¬Ê¹ÓÃDeleteObjectº¯Êý½«ÁÙʱʹÓõÄλͼ¾ä±úɾ³ý£¬²¢Ê¹ÓÃDeleteDC½«²Ù×÷ÕâЩλͼµÄhDCɾ³ý¡£
²Ù×÷δ³õʼ»¯Î»Í¼ÐèÒªÓõ½CreatepatibleDCºÍCreatepatibleBitmapº¯Êý£¬³õѧÕß³£·¸µÄ´íÎóÊÇÓÃCreatepatibleDC·µ»ØµÄhDCµ±×öCreatepatibleBitmapº¯ÊýµÄ²Î¿¼hDC£¬ÕâÑùµÄ½á¹ûÊǽ¨Á¢µÄλͼÊǵ¥É«µÄ£¬ÕýÈ·µÄ×ö·¨ÊÇÁ½¸öº¯ÊýµÄ²Î¿¼hDC¶¼Ê¹Óô°¿Ú¿Í»§ÇøµÄhDC¡£
7¡£3¡£3¡¡¡¡Ê¹ÓÃÉ豸ÎÞ¹Øλͼ
É豸ÎÞ¹Øλͼ¼ò³ÆΪDIB£¬ÕâÔÚ5¡£3¡£1С½ÚÖÐÒѾÓÐËù½éÉÜ¡£DIBÒ»°ãÊÇ´æ·ÅÔÚ´ÅÅÌÉϵÄÒÔbmpΪÀ©Õ¹Ãûµ