📄 mp3.asm
字号:
.386
.model flat,stdcall
option casemap:none
include mp3.inc
;**********************************************************
.code
include subproc\bkcolor.asm
include subproc\cursorset.asm
include subproc\play.asm
include subproc\list.asm
include subproc\registry.asm
include subproc\dlgset.asm
DlgProc proc hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM
include subproc\localvar.asm
.if uMsg==WM_INITDIALOG
include subproc\initdlg.asm
.elseif uMsg==WM_SYSCOMMAND
include subproc\wm_syscommand.asm
.elseif uMsg==WM_SIZE
include subproc\wm_size.asm
.ELSEIF uMsg==WM_COMMAND
include subproc\wm_command.asm
.elseif uMsg==WM_TIMER
include subproc\wm_timer.asm
.elseif uMsg==WM_SETCURSOR
INVOKE SetCursor,hCursor
.elseif uMsg==WM_ERASEBKGND
invoke _SetBkColor,hWnd,wParam,BackColor
.elseif uMsg==WM_CTLCOLORSTATIC
invoke GetDlgCtrlID,lParam
.if eax==IDC_GROUPBOX
mov eax,BackColor
xor eax,0ffffffffh
invoke SetTextColor,wParam,eax
INVOKE SetBkColor,wParam,BackColor
invoke GetStockObject,NULL_BRUSH
.ELSE
MOV eax,FALSE
ret
.endif
ret
;.elseif
.ELSEIF uMsg==WM_DESTROY
invoke Shell_NotifyIcon,NIM_DELETE,ADDR note
invoke _SetRegistKey
INVOKE KillTimer,hWnd,TimeID
invoke EndDialog,hWnd,NULL
.elseif uMsg==WM_SHELLNOTIFY
.IF wParam==IDI_MAIN || wParam==IDI_SECOND
mov eax,lParam
.if eax==WM_RBUTTONDOWN
invoke GetCursorPos,addr pt
invoke TrackPopupMenu,hPopupMenu,\
TPM_RIGHTALIGN,pt.x,pt.y,\
NULL,hWnd,NULL
.elseif eax==WM_LBUTTONDBLCLK
invoke SendMessage,hWnd,WM_COMMAND,IDM_RESTORE,NULL
.endif
.ELSE
MOV eax,FALSE
ret
.endif
.elseif uMsg==MM_MCINOTIFY
.if wParam==MCI_NOTIFY_SUCCESSFUL
.if RepeatFlag==1
call _StopPlayMp3
invoke SendMessage,hWnd,WM_COMMAND,IDM_PLAY,NULL
.else
invoke SetDlgItemText,hWinMain,IDC_PLAY,OFFSET PlayString
mov dwFlag,0
call _StopPlayMp3
.endif
.else
.endif
mov eax,TRUE
ret
.else
mov eax,FALSE
ret
.endif
mov eax,TRUE
ret
DlgProc endp
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
start:
INVOKE InitCommonControls
invoke GetModuleHandle, NULL
mov hInstance,eax
invoke DialogBoxParam,hInstance,IDD_MAINDLG,NULL,ADDR DlgProc,0
invoke ExitProcess,NULL
end start
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -