📄 mpath.asm
字号:
;MPATH\mpath.dlg
IDD_MPATH equ 4800
IDC_STC4 equ 1001
IDC_MPATHTXT equ 1002
IDC_MPATHBRW equ 1003
IDC_MPATHOK equ 1004
IDC_MPATHCAN equ 1005
IDC_MPATHCMM equ 1006
IDM_OPTION_MPATH equ 10063
.data?
.data
szMPathCaption db '请选择目录',0
szMPathText db '请选择您的MASM32目录:',0
szMPathCmm db '此选项由汉化作者提供',0
setOK db 0
.code
MPathProc proc hWin:HWND,uMsg:UINT,wParam:WPARAM,lParam:LPARAM
LOCAL path[MAX_PATH]:BYTE
LOCAL buff1
LOCAL buff2
LOCAL lbuff1
mov eax,uMsg
mov lbuff1,MAX_PATH
.if eax==WM_INITDIALOG
invoke SendDlgItemMessage,hWin,IDC_MPATHCMM,WM_SETTEXT,0,addr szMPathCmm
invoke _RegQueryValue,addr buff1,addr lbuff1
.if eax==ERROR_SUCCESS
invoke SendDlgItemMessage,hWin,IDC_MPATHTXT,WM_SETTEXT,0,addr buff1
.endif
.elseif eax==WM_COMMAND
mov eax,wParam
.if eax==IDC_MPATHCAN
invoke SendMessage,hWin,WM_CLOSE,NULL,NULL
.elseif eax==IDC_MPATHBRW
invoke BrowseForFolder,hWin,ADDR path,ADDR szMPathCaption,ADDR szMPathText
.if eax
invoke SendDlgItemMessage,hWin,IDC_MPATHTXT,WM_SETTEXT,0,addr path
mov setOK,1
.endif
.elseif eax==IDC_MPATHOK
.if setOK==1
invoke GetDlgItemText,hWin,IDC_MPATHTXT,addr buff2,256
invoke lstrlen,addr buff2
invoke _RegSetValue,addr buff2,eax
.else
.endif
invoke SendMessage,hWin,WM_CLOSE,NULL,NULL
.endif
.elseif eax==WM_CLOSE
invoke EndDialog,hWin,NULL
.else
mov eax,FALSE
ret
.endif
mov eax,TRUE
ret
MPathProc endp
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -