µÚÒ»·¶ÎÄÍø - רҵÎÄÕ·¶ÀýÎĵµ×ÊÁÏ·ÖÏíÆ½Ì¨

¸ÖÇÙ¼üÅÌÑÝ×à˵Ã÷Êé

À´Ô´£ºÓû§·ÖÏí ʱ¼ä£º2025/5/19 15:30:25 ±¾ÎÄÓÉloading ·ÖÏí ÏÂÔØÕâÆªÎĵµÊÖ»ú°æ
˵Ã÷£ºÎÄÕÂÄÚÈݽö¹©Ô¤ÀÀ£¬²¿·ÖÄÚÈÝ¿ÉÄܲ»È«£¬ÐèÒªÍêÕûÎĵµ»òÕßÐèÒª¸´ÖÆÄÚÈÝ£¬ÇëÏÂÔØwordºóʹÓá£ÏÂÔØwordÓÐÎÊÌâÇëÌí¼Ó΢ÐźÅ:xxxxxxx»òQQ£ºxxxxxx ´¦Àí£¨¾¡¿ÉÄܸøÄúÌṩÍêÕûÎĵµ£©£¬¸ÐлÄúµÄÖ§³ÖÓëÁ½⡣

CmdShow:DWORD

LOCAL wc:WNDCLASSEX LOCAL msg:MSG LOCAL hwnd:HWND

mov wc.cbSize, SIZEOF WNDCLASSEX

mov wc.style, CS_HREDRAW or CS_VREDRAW mov wc.lpfnWndProc, OFFSET WndProc mov wc.cbClsExtra, NULL mov wc.cbWndExtra, NULL push hInst

pop wc.hInstance

mov wc.hbrBackground, COLOR_WINDOW+1 mov wc.lpszMenuName, NULL

mov wc.lpszClassName, OFFSET ClassName invoke LoadIcon, NULL, IDI_APPLICATION mov wc.hIcon, eax mov wc.hIconSm, eax

invoke LoadCursor, NULL, IDC_ARROW mov wc.hCursor, eax

invoke RegisterClassEx, addr wc

INVOKE CreateWindowEx, NULL, ADDR ClassName, ADDR AppName,\\ WS_OVERLAPPEDWINDOW, CW_USEDEFAULT,\\ CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL,\\ hInst, NULL mov hwnd, eax

INVOKE ShowWindow, hwnd, SW_SHOWNORMAL INVOKE UpdateWindow, hwnd

.WHILE TRUE INVOKE GetMessage, ADDR msg, NULL, 0, 0 .BREAK .IF (!eax) INVOKE TranslateMessage, ADDR msg INVOKE DispatchMessage, ADDR msg .ENDW

mov eax, msg.wParam ret

WinMain endp

WndProc proc hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM local @stPs:PAINTSTRUCT local @stRect:RECT

local @hDc

local @playf:WORD

.IF uMsg == WM_DESTROY invoke midiOutClose, hdc invoke PostQuitMessage, NULL .ELSEIF uMsg == WM_PAINT invoke BeginPaint, hWnd, addr @stPs mov @hDc,eax invoke GetClientRect, hWnd, addr @stRect invoke DrawText, @hDc, addr szText, -1, addr @stRect,\\ DT_SINGLELINE or DT_CENTER or DT_VCENTER invoke EndPaint, hWnd, addr @stPs .ELSEIF uMsg == WM_CHAR mov @playf, 0h push wParam pop midiPu ;===============ESC¼üµÄ¹¦ÄÜ================ .if midiPu==WM_DEVMODECHANGE invoke midiOutClose, hdc invoke PostQuitMessage, NULL .endif ;---------------Òôµ÷--------------------- .if midiPu == 61h ; 'a' mov midiYu, -24 .elseif midiPu == 62h ; 'b' mov midiYu, -12 .elseif midiPu == 63h ; 'c' mov midiYu, 0 .elseif midiPu == 64h ; 'd' mov midiYu, 12 .elseif midiPu == 65h ; 'e' mov midiYu, 24 .elseif midiPu == 66h ; 'f' mov midiYu, 36 .elseif midiPu == 67h ; 'g' mov midiYu, 48 ;===============È«Òô==== .elseif midiPu == 31h mov midiPu, 3ch

mov @playf, 1

;1bh

.elseif midiPu == 32h mov midiPu, 3eh mov @playf, 1 .elseif midiPu == 33h mov midiPu, 40h mov @playf, 1 .elseif midiPu == 34h mov midiPu, 41h mov @playf, 1 .elseif midiPu == 35h mov midiPu, 43h mov @playf, 1 .elseif midiPu == 36h mov midiPu, 45h mov @playf, 1 .elseif midiPu == 37h mov midiPu, 47h mov @playf, 1 ;================°ëÒô==== .elseif midiPu == 71h ; 'q' mov midiPu, 3dh mov @playf, 1 .elseif midiPu == 77h ; 'w' mov midiPu, 3fh mov @playf, 1 .elseif midiPu == 72h ; 'r' mov midiPu, 42h mov @playf, 1 .elseif midiPu == 74h ; 't' mov midiPu, 44h mov @playf, 1 .elseif midiPu == 79h ; 'y' mov midiPu, 46h mov @playf, 1 .endif

;------------------------------------------- .if @playf == 1 mov eax, midiYu add midiPu, eax mov cl, 8

shl midiPu, cl and midiPu, 0ff00h add midiPu, 680090h .if midiPlayFlag == 1h ;================µ÷ÓÃÉù¿¨µÄ´úÂë==== invoke midiOutShortMsg, hdc, midiPu mov midiPlayFlag, 0h ;-------------------Éù¿¨´úÂë½áÊø------------------------ .endif .endif

.ELSEIF uMsg == WM_KEYUP mov midiPlayFlag, 1h .elseif uMsg == WM_CREATE invoke midiOutOpen, ADDR hdc, -1, NULL, NULL, NULL mov midiYu, 0h mov midiPlayFlag, 1h .ELSE invoke DefWindowProc, hWnd, uMsg, wParam, lParam ret .ENDIF xor eax, eax ret

WndProc endp end start

ËÑË÷¸ü¶à¹ØÓÚ£º ¸ÖÇÙ¼üÅÌÑÝ×à˵Ã÷Êé µÄÎĵµ
¸ÖÇÙ¼üÅÌÑÝ×à˵Ã÷Êé.doc ½«±¾ÎĵÄWordÎĵµÏÂÔØµ½µçÄÔ£¬·½±ã¸´ÖÆ¡¢±à¼­¡¢ÊղغʹòÓ¡
±¾ÎÄÁ´½Ó£ºhttps://www.diyifanwen.net/c6zy567rs5b3ef8l93tv7_7.html£¨×ªÔØÇë×¢Ã÷ÎÄÕÂÀ´Ô´£©
ÈÈÃÅÍÆ¼ö
Copyright © 2012-2023 µÚÒ»·¶ÎÄÍø °æÈ¨ËùÓÐ ÃâÔðÉùÃ÷ | ÁªÏµÎÒÃÇ
ÉùÃ÷ :±¾ÍøÕ¾×ðÖØ²¢±£»¤ÖªÊ¶²úȨ£¬¸ù¾Ý¡¶ÐÅÏ¢ÍøÂç´«²¥È¨±£»¤ÌõÀý¡·£¬Èç¹ûÎÒÃÇ×ªÔØµÄ×÷Æ·ÇÖ·¸ÁËÄúµÄȨÀû,ÇëÔÚÒ»¸öÔÂÄÚ֪ͨÎÒÃÇ£¬ÎÒÃǻἰʱɾ³ý¡£
¿Í·þQQ£ºxxxxxx ÓÊÏ䣺xxxxxx@qq.com
ÓåICP±¸2023013149ºÅ
Top