📄 property.asm
字号:
.elseif eax=='gamI'
invoke lstrcpy,addr [esi].caption,addr buffer1
.elseif eax=='CivA'
invoke lstrcpy,addr [esi].caption,addr buffer1
.elseif eax=='tnoF'
mov edx,esi
sub edx,sizeof DLGHEAD
invoke lstrcpy,addr (DLGHEAD ptr [edx]).font,addr buffer1
.elseif eax=='salC'
mov eax,[esi].ntype
.if eax==0
mov edx,esi
sub edx,sizeof DLGHEAD
invoke lstrcpy,addr (DLGHEAD ptr [edx]).class,addr buffer1
.elseif eax==23
invoke lstrcpy,addr [esi].caption,addr buffer1
.endif
.elseif eax=='uneM'
mov edx,esi
sub edx,sizeof DLGHEAD
invoke lstrcpy,addr (DLGHEAD ptr [edx]).menuid,addr buffer1
.endif
mov eax,lbid
;Is True/False Style or Multi Style changed
mov edi,lpPtr
.if eax>=PRP_BOOL_SYSMENU && eax<=499
.if eax==223
mov eax,[esi].exstyle
and eax,[edi]
or eax,[edi+4]
mov [esi].exstyle,eax
.else
mov eax,[esi].style
and eax,[edi]
or eax,[edi+4]
mov [esi].style,eax
.endif
;Is Multi Style changed
mov eax,lbid
.if eax>=PRP_MULTI_CLIP
mov eax,[esi].exstyle
and eax,[edi+8]
or eax,[edi+12]
mov [esi].exstyle,eax
.endif
.elseif eax>65535
.if dword ptr [eax]==1
mov eax,[esi].style
and eax,[edi]
or eax,[edi+4]
mov [esi].style,eax
.elseif dword ptr [eax]==2
mov eax,[esi].exstyle
and eax,[edi]
or eax,[edi+4]
mov [esi].exstyle,eax
.elseif dword ptr [eax]==3
mov eax,[esi].style
and eax,[edi]
or eax,[edi+4]
mov [esi].style,eax
mov eax,[esi].exstyle
and eax,[edi+8]
or eax,[edi+12]
mov [esi].exstyle,eax
.endif
.endif
invoke UpdateCtl,hCtl
assume esi:nothing
.endif
.endif
.endif
ret
PropEditUpdList endp
ListFalseTrue proc uses esi,CtlVal:DWORD,lpVal:DWORD,lpBuff:DWORD
mov esi,lpVal
mov eax,[esi]
xor eax,-1
and eax,CtlVal
.if eax==[esi+4]
invoke lstrcpy,lpBuff,addr szFalse
.else
invoke lstrcpy,lpBuff,addr szTrue
.endif
ret
ListFalseTrue endp
ListMultiStyle proc uses esi,CtlValSt:DWORD,CtlValExSt:DWORD,lpVal:DWORD,lpBuff:DWORD
LOCAL buffer[256]:BYTE
LOCAL buffer1[64]:BYTE
invoke lstrcpy,addr buffer,lpVal
invoke lstrlen,lpVal
add lpVal,eax
inc lpVal
@@:
invoke GetStrItem,addr buffer,addr buffer1
mov esi,lpVal
mov eax,[esi]
xor eax,-1
and eax,CtlValSt
.if eax==[esi+4]
mov eax,[esi+8]
xor eax,-1
and eax,CtlValExSt
.if eax==[esi+12]
invoke lstrcpy,lpBuff,addr buffer1
ret
.endif
.endif
add lpVal,16
mov al,buffer[0]
or al,al
jne @b
ret
ListMultiStyle endp
GetCustProp proc nType:DWORD,nProp:DWORD
invoke GetTypePtr,nType
mov edx,nProp
sub edx,[eax].TYPES.nmethod
mov eax,[eax].TYPES.methods
.if eax
lea eax,[eax+edx*8]
.endif
ret
GetCustProp endp
PropertyList proc uses esi edi,hCtl:DWORD
LOCAL buffer[1024]:BYTE
LOCAL buffer1[512]:BYTE
LOCAL nType:DWORD
LOCAL lbid:DWORD
LOCAL fList1:DWORD
LOCAL fList2:DWORD
LOCAL fList3:DWORD
LOCAL fList4:DWORD
LOCAL nInx:DWORD
LOCAL tInx:DWORD
invoke ShowWindow,hPrpEdtDlgCld,SW_HIDE
invoke ShowWindow,hPrpBtnDlgCld,SW_HIDE
invoke ShowWindow,hPrpLstDlgCld,SW_HIDE
invoke SendMessage,hPrpCboDlg,CB_RESETCONTENT,0,0
invoke SendMessage,hPrpLstDlg,LB_GETTOPINDEX,0,0
mov tInx,eax
invoke SendMessage,hPrpLstDlg,WM_SETREDRAW,FALSE,0
invoke SendMessage,hPrpLstDlg,LB_RESETCONTENT,0,0
invoke SendMessage,hPrpLstDlg,LB_SETITEMHEIGHT,0,lbHt
invoke SetWindowLong,hPrpLstDlg,GWL_USERDATA,hCtl
.if hCtl
invoke GetWindowLong,hCtl,GWL_USERDATA
mov esi,eax
assume esi:ptr DIALOG
mov eax,[esi].ntype
mov nType,eax
invoke GetTypePtr,nType
push (TYPES ptr [eax]).flist
pop fList1
push (TYPES ptr [eax]).flist+4
pop fList2
push (TYPES ptr [eax]).flist+8
pop fList3
push (TYPES ptr [eax]).flist+12
pop fList4
invoke lstrcpy,addr buffer,addr PrAll
mov nInx,0
@@:
invoke GetStrItem,addr buffer,addr buffer1
xor eax,eax
mov al,buffer1[0]
or al,al
je @f
shl fList4,1
rcl fList3,1
rcl fList2,1
rcl fList1,1
.if CARRY?
invoke lstrlen,addr buffer1
lea edi,buffer1[eax]
mov ax,09h
stosw
dec edi
mov eax,nType
mov edx,nInx
mov lbid,0
.if edx==0
;(Name)
mov lbid,PRP_STR_NAME
invoke lstrcpy,edi,addr [esi].idname
.elseif edx==1
;(ID)
mov lbid,PRP_NUM_ID
invoke ResEdBinToDec,[esi].id,edi
.elseif edx==2
;Left
mov lbid,PRP_NUM_POS
invoke ResEdBinToDec,[esi].x,edi
.elseif edx==3
;Top
mov lbid,PRP_NUM_POS
invoke ResEdBinToDec,[esi].y,edi
.elseif edx==4
;Width
mov lbid,PRP_NUM_SIZE
invoke ResEdBinToDec,[esi].ccx,edi
.elseif edx==5
;Height
mov lbid,PRP_NUM_SIZE
invoke ResEdBinToDec,[esi].ccy,edi
.elseif edx==6
;Caption
mov lbid,PRP_STR_CAPTION
invoke lstrcpy,edi,addr [esi].caption
.elseif edx==7
;Border
mov lbid,400
.if eax==0
invoke ListMultiStyle,[esi].style,[esi].exstyle,addr BordDlg,edi
.elseif eax==2 || eax==17 || eax==25
invoke ListMultiStyle,[esi].style,[esi].exstyle,addr BordStc,edi
.elseif eax==3 || eax==4
invoke ListMultiStyle,[esi].style,[esi].exstyle,addr BordBtn,edi
.else
invoke ListMultiStyle,[esi].style,[esi].exstyle,addr BordAll,edi
.endif
.elseif edx==8
;SysMenu
mov lbid,PRP_BOOL_SYSMENU
invoke ListFalseTrue,[esi].style,addr SysMDlg,edi
.elseif edx==9
;MaxButton
mov lbid,PRP_BOOL_MAXBUTTON
invoke ListFalseTrue,[esi].style,addr MaxBDlg,edi
.elseif edx==10
;MinButton
mov lbid,PRP_BOOL_MINBUTTON
invoke ListFalseTrue,[esi].style,addr MinBDlg,edi
.elseif edx==11
;Enabled
mov lbid,PRP_BOOL_ENABLED
invoke ListFalseTrue,[esi].style,addr EnabAll,edi
.elseif edx==12
;Visible
mov lbid,PRP_BOOL_VISIBLE
invoke ListFalseTrue,[esi].style,addr VisiAll,edi
.elseif edx==13
;Clipping
mov lbid,PRP_MULTI_CLIP
invoke ListMultiStyle,[esi].style,[esi].exstyle,addr ClipAll,edi
.elseif edx==14
;ScrollBar
mov lbid,PRP_MULTI_SCROLL
invoke ListMultiStyle,[esi].style,[esi].exstyle,addr ScroAll,edi
.elseif edx==15
;Default
mov lbid,PRP_BOOL_DEFAULT
invoke ListFalseTrue,[esi].style,addr DefaBtn,edi
.elseif edx==16
;Auto
mov lbid,PRP_BOOL_AUTO
.if eax==5
invoke ListFalseTrue,[esi].style,addr AutoChk,edi
.elseif eax==6
invoke ListFalseTrue,[esi].style,addr AutoRbt,edi
.elseif eax==16
invoke ListFalseTrue,[esi].style,addr AutoSpn,edi
.endif
.elseif edx==17
;Alignment
mov lbid,PRP_MULTI_ALIGN
.if eax==1
invoke ListMultiStyle,[esi].style,[esi].exstyle,addr AligEdt,edi
.elseif eax==2
invoke ListMultiStyle,[esi].style,[esi].exstyle,addr AligStc,edi
.elseif eax==4
invoke ListMultiStyle,[esi].style,[esi].exstyle,addr AligBtn,edi
.elseif eax==5 || eax==6
invoke ListMultiStyle,[esi].style,[esi].exstyle,addr AligChk,edi
.elseif eax==11
invoke ListMultiStyle,[esi].style,[esi].exstyle,addr AligTab,edi
.elseif eax==14
invoke ListMultiStyle,[esi].style,[esi].exstyle,addr AligLsv,edi
.elseif eax==16
invoke ListMultiStyle,[esi].style,[esi].exstyle,addr AligSpn,edi
.elseif eax==17
invoke ListMultiStyle,[esi].style,[esi].exstyle,addr AligIco,edi
.elseif eax==18 || eax==19
invoke ListMultiStyle,[esi].style,[esi].exstyle,addr AligTbr,edi
.elseif eax==27
invoke ListMultiStyle,[esi].style,[esi].exstyle,addr AligAni,edi
.endif
.elseif edx==18
;Mnemonic
mov lbid,PRP_BOOL_MNEMONIC
invoke ListFalseTrue,[esi].style,addr MnemStc,edi
.elseif edx==19
;WordWrap
mov lbid,PRP_BOOL_WORDWRAP
invoke ListFalseTrue,[esi].style,addr WordStc,edi
.elseif edx==20
;MultiLine
mov lbid,PRP_BOOL_MULTI
.if eax==1 || eax==22
invoke ListFalseTrue,[esi].style,addr MultEdt,edi
.elseif eax==11
invoke ListFalseTrue,[esi].style,addr MultTab,edi
.endif
.elseif edx==21
;Type
mov lbid,401
.if eax==1
invoke ListMultiStyle,[esi].style,[esi].exstyle,addr TypeEdt,edi
.elseif eax==4
invoke ListMultiStyle,[esi].style,[esi].exstyle,addr TypeBtn,edi
.elseif eax==7 || eax==24
invoke ListMultiStyle,[esi].style,[esi].exstyle,addr TypeCbo,edi
.elseif eax==13
invoke ListMultiStyle,[esi].style,[esi].exstyle,addr TypeTrv,edi
.elseif eax==14
invoke ListMultiStyle,[esi].style,[esi].exstyle,addr TypeLsv,edi
.elseif eax==17
invoke ListMultiStyle,[esi].style,[esi].exstyle,addr TypeImg,edi
.elseif eax==20
invoke ListMultiStyle,[esi].style,[esi].exstyle,addr TypeDtp,edi
.elseif eax==25
invoke ListMultiStyle,[esi].style,[esi].exstyle,addr TypeStc,edi
.endif
.elseif edx==22
;Locked
mov lbid,PRP_BOOL_LOCK
invoke ListFalseTrue,[esi].style,addr LockEdt,edi
.elseif edx==23
;Child
mov lbid,PRP_BOOL_CHILD
invoke ListFalseTrue,[esi].style,addr ChilAll,edi
.elseif edx==24
;SizeBorder
mov lbid,PRP_BOOL_SIZE
.if eax==0
invoke ListFalseTrue,[esi].style,addr SizeDlg,edi
.endif
.elseif edx==25
;TabStop
mov lbid,PRP_BOOL_TABSTOP
invoke ListFalseTrue,[esi].style,addr TabSAll,edi
.elseif edx==26
;Font
mov lbid,1000
sub esi,sizeof DLGHEAD
mov eax,(DLGHEAD ptr [esi]).fontsize
invoke ResEdBinToDec,eax,edi
invoke lstrlen,edi
lea edi,[edi+eax]
mov al,','
stosb
invoke lstrcpy,edi,addr (DLGHEAD ptr [esi]).font
add esi,sizeof DLGHEAD
.elseif edx==27
;Menu
mov lbid,1002
sub esi,sizeof DLGHEAD
invoke lstrcpy,edi,addr (DLGHEAD ptr [esi]).menuid
add esi,sizeof DLGHEAD
.elseif edx==28
;Class
.if eax==0
mov lbid,1001
sub esi,sizeof DLGHEAD
invoke lstrcpy,edi,addr (DLGHEAD ptr [esi]).class
add esi,sizeof DLGHEAD
.elseif eax==23
invoke lstrcpy,edi,addr (DIALOG ptr [esi]).caption
.endif
.elseif edx==29
;Notify
mov lbid,PRP_BOOL_NOTIFY
.if eax==2 || eax==17 || eax==25
invoke ListFalseTrue,[esi].style,addr NotiStc,edi
.elseif eax==4 || eax==5 || eax==6
invoke ListFalseTrue,[esi].style,addr NotiBtn,edi
.elseif eax==8
invoke ListFalseTrue,[esi].style,addr NotiLst,edi
.endif
.elseif edx==30
;AutoScroll
mov lbid,PRP_MULTI_AUTOSCROLL
.if eax==1 || eax==22
invoke ListMultiStyle,[esi].style,[esi].exstyle,addr AutoEdt,edi
.endif
.elseif edx==31
;WantCr
mov lbid,PRP_BOOL_WANTCR
invoke ListFalseTrue,[esi].style,addr WantEdt,edi
;****
.elseif edx==32
;Sort
mov lbid,PRP_BOOL_SORT
.if eax==7
invoke ListFalseTrue,[esi].style,addr SortCbo,edi
.elseif eax==8
invoke ListFalseTrue,[esi].style,addr SortLst,edi
.elseif eax==14
mov lbid,307
invoke ListMultiStyle,[esi].style,[esi].exstyle,addr SortLsv,edi
.endif
.elseif edx==33
;Flat
mov lbid,PRP_BOOL_FLAT
invoke ListFalseTrue,[esi].style,addr FlatTbr,edi
.elseif edx==34
;(StartID)
mov lbid,PRP_NUM_STARTID
sub esi,sizeof DLGHEAD
invoke ResEdBinToDec,(DLGHEAD ptr [esi]).ctlid,edi
add esi,sizeof DLGHEAD
.elseif edx==35
;TabIndex
mov lbid,PRP_NUM_TAB
invoke ResEdBinToDec,[esi].tab,edi
.elseif edx==36
;Format
mov lbid,PRP_MULTI_FORMAT
invoke ListMultiStyle,[esi].style,[esi].exstyle,addr FormDtp,edi
.elseif edx==37
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -