⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 property.asm

📁 汇编资源编辑器
💻 ASM
📖 第 1 页 / 共 5 页
字号:
				.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 + -