mp3.asm

来自「本程序**%100汇编语言**编写。 编译器: <<-----MAS」· 汇编 代码 · 共 93 行

ASM
93
字号
.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 + =
减小字号Ctrl + -
显示快捷键?