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

📄 property.asm

📁 汇编资源编辑器
💻 ASM
📖 第 1 页 / 共 5 页
字号:
		invoke TxtLstFalseTrue,[esi].style,addr MinBDlg
	.elseif eax==PRP_BOOL_ENABLED
		invoke TxtLstFalseTrue,[esi].style,addr EnabAll
	.elseif eax==PRP_BOOL_VISIBLE
		invoke TxtLstFalseTrue,[esi].style,addr VisiAll
	.elseif eax==PRP_BOOL_DEFAULT
		invoke TxtLstFalseTrue,[esi].style,addr DefaBtn
	.elseif eax==PRP_BOOL_AUTO
		.if nType==5
			invoke TxtLstFalseTrue,[esi].style,addr AutoChk
		.elseif nType==6
			invoke TxtLstFalseTrue,[esi].style,addr AutoRbt
		.elseif nType==16
			invoke TxtLstFalseTrue,[esi].style,addr AutoSpn
		.elseif nType==18 || nType==19
			invoke TxtLstFalseTrue,[esi].style,addr AutoTbr
		.elseif nType==27
			invoke TxtLstFalseTrue,[esi].style,addr AutoAni
		.endif
	.elseif eax==PRP_BOOL_MNEMONIC
		invoke TxtLstFalseTrue,[esi].style,addr MnemStc
	.elseif eax==PRP_BOOL_WORDWRAP
		invoke TxtLstFalseTrue,[esi].style,addr WordStc
	.elseif eax==PRP_BOOL_MULTI
		.if nType==1 || nType==22
			invoke TxtLstFalseTrue,[esi].style,addr MultEdt
		.elseif nType==8
			invoke TxtLstFalseTrue,[esi].style,addr MultLst
		.elseif nType==11
			invoke TxtLstFalseTrue,[esi].style,addr MultTab
		.elseif nType==21
			invoke TxtLstFalseTrue,[esi].style,addr MultMvi
		.endif
	.elseif eax==PRP_BOOL_LOCK
		invoke TxtLstFalseTrue,[esi].style,addr LockEdt
	.elseif eax==PRP_BOOL_CHILD
		invoke TxtLstFalseTrue,[esi].style,addr ChilAll
	.elseif eax==PRP_BOOL_SIZE
		.if nType==0
			invoke TxtLstFalseTrue,[esi].style,addr SizeDlg
		.elseif nType==19
			invoke TxtLstFalseTrue,[esi].style,addr SizeSbr
		.endif
	.elseif eax==PRP_BOOL_TABSTOP
		invoke TxtLstFalseTrue,[esi].style,addr TabSAll
	.elseif eax==PRP_BOOL_NOTIFY
		.if nType==2 || nType==17 || nType==25
			invoke TxtLstFalseTrue,[esi].style,addr NotiStc
		.elseif nType==4 || nType==5 || nType==6
			invoke TxtLstFalseTrue,[esi].style,addr NotiBtn
		.elseif nType==8
			invoke TxtLstFalseTrue,[esi].style,addr NotiLst
		.endif
	.elseif eax==PRP_BOOL_WANTCR
		invoke TxtLstFalseTrue,[esi].style,addr WantEdt
	.elseif eax==PRP_BOOL_SORT
		.if nType==7
			invoke TxtLstFalseTrue,[esi].style,addr SortCbo
		.elseif nType==8
			invoke TxtLstFalseTrue,[esi].style,addr SortLst
		.endif
	.elseif eax==PRP_BOOL_FLAT
		invoke TxtLstFalseTrue,[esi].style,addr FlatTbr
	.elseif eax==PRP_BOOL_GROUP
		invoke TxtLstFalseTrue,[esi].style,addr GrouAll
	.elseif eax==PRP_BOOL_ICON
;		invoke TxtLstFalseTrue,[esi].style,addr IconBtn
	.elseif eax==PRP_BOOL_USETAB
		invoke TxtLstFalseTrue,[esi].style,addr UseTLst
	.elseif eax==PRP_BOOL_SETBUDDY
		invoke TxtLstFalseTrue,[esi].style,addr SetBUdn
	.elseif eax==PRP_BOOL_HIDE
		.if nType==1 || nType==22
			invoke TxtLstFalseTrue,[esi].style,addr HideEdt
		.elseif nType==13
			invoke TxtLstFalseTrue,[esi].style,addr HideTrv
		.elseif nType==14
			invoke TxtLstFalseTrue,[esi].style,addr HideLsv
		.endif
	.elseif eax==PRP_BOOL_TOPMOST
		invoke TxtLstFalseTrue,[esi].exstyle,addr TopMost
	.elseif eax==PRP_BOOL_INTEGRAL
		.if nType==7
			invoke TxtLstFalseTrue,[esi].style,addr IntHtCbo
		.elseif nType==8
			invoke TxtLstFalseTrue,[esi].style,addr IntHtLst
		.endif
	.elseif eax==PRP_BOOL_BUTTON
		.if nType==11
			invoke TxtLstFalseTrue,[esi].style,addr ButtTab
		.elseif nType==13
			invoke TxtLstFalseTrue,[esi].style,addr ButtTrv
		.elseif nType==32
			invoke TxtLstFalseTrue,[esi].style,addr ButtHdr
		.endif
	.elseif eax==PRP_BOOL_POPUP
		invoke TxtLstFalseTrue,[esi].style,addr PopUAll
	.elseif eax==PRP_BOOL_OWNERDRAW
		invoke TxtLstFalseTrue,[esi].style,addr OwneLsv
	.elseif eax==PRP_BOOL_TRANSP
		invoke TxtLstFalseTrue,[esi].style,addr TranAni
	.elseif eax==PRP_BOOL_TIME
		invoke TxtLstFalseTrue,[esi].style,addr TimeAni
	.elseif eax==PRP_BOOL_WEEK
		invoke TxtLstFalseTrue,[esi].style,addr WeekMvi
	.elseif eax==PRP_BOOL_TOOLTIP
		.if nType==11
			invoke TxtLstFalseTrue,[esi].style,addr ToolTab
		.else
			invoke TxtLstFalseTrue,[esi].style,addr ToolTbr
		.endif
	.elseif eax==PRP_BOOL_WRAP
		invoke TxtLstFalseTrue,[esi].style,addr WrapTbr
	.elseif eax==PRP_BOOL_DIVIDER
		invoke TxtLstFalseTrue,[esi].style,addr DiviTbr
	.elseif eax==PRP_BOOL_DRAGDROP
		invoke TxtLstFalseTrue,[esi].style,addr DragHdr
	.elseif eax==PRP_BOOL_SMOOTH
		invoke TxtLstFalseTrue,[esi].style,addr SmooPgb
	.elseif eax==PRP_MULTI_CLIP
		invoke TxtLstMulti,[esi].style,[esi].exstyle,addr ClipAll
	.elseif eax==PRP_MULTI_SCROLL
		invoke TxtLstMulti,[esi].style,[esi].exstyle,addr ScroAll
	.elseif eax==PRP_MULTI_ALIGN
		.if nType==1
			invoke TxtLstMulti,[esi].style,[esi].exstyle,addr AligEdt
		.elseif nType==2
			invoke TxtLstMulti,[esi].style,[esi].exstyle,addr AligStc
		.elseif nType==4
			invoke TxtLstMulti,[esi].style,[esi].exstyle,addr AligBtn
		.elseif nType==5 || nType==6
			invoke TxtLstMulti,[esi].style,[esi].exstyle,addr AligChk
		.elseif nType==11
			invoke TxtLstMulti,[esi].style,[esi].exstyle,addr AligTab
		.elseif nType==14
			invoke TxtLstMulti,[esi].style,[esi].exstyle,addr AligLsv
		.elseif nType==16
			invoke TxtLstMulti,[esi].style,[esi].exstyle,addr AligSpn
		.elseif nType==17
			invoke TxtLstMulti,[esi].style,[esi].exstyle,addr AligIco
		.elseif nType==18 || nType==19
			invoke TxtLstMulti,[esi].style,[esi].exstyle,addr AligTbr
		.elseif nType==27
			invoke TxtLstMulti,[esi].style,[esi].exstyle,addr AligAni
		.endif
	.elseif eax==PRP_MULTI_AUTOSCROLL
		invoke TxtLstMulti,[esi].style,[esi].exstyle,addr AutoEdt
	.elseif eax==PRP_MULTI_FORMAT
		invoke TxtLstMulti,[esi].style,[esi].exstyle,addr FormDtp
	.elseif eax==305
		invoke TxtLstMulti,[esi].style,[esi].exstyle,addr StarDlg
	.elseif eax==306
		.if nType==12
			invoke TxtLstMulti,[esi].style,[esi].exstyle,addr OriePgb
		.elseif nType==16
			invoke TxtLstMulti,[esi].style,[esi].exstyle,addr OrieUdn
		.endif
	.elseif eax==307
		invoke TxtLstMulti,[esi].style,[esi].exstyle,addr SortLsv
	.elseif eax==308
		invoke TxtLstMulti,[esi].style,[esi].exstyle,addr OwneCbo
	.elseif eax==400
		mov		eax,nType
		.if eax==0
			invoke TxtLstMulti,[esi].style,[esi].exstyle,addr BordDlg
		.elseif eax==2 || eax==17 || eax==25
			invoke TxtLstMulti,[esi].style,[esi].exstyle,addr BordStc
		.elseif eax==3 || eax==4
			invoke TxtLstMulti,[esi].style,[esi].exstyle,addr BordBtn
		.else
			invoke TxtLstMulti,[esi].style,[esi].exstyle,addr BordAll
		.endif
	.elseif eax==401
		mov		eax,nType
		.if eax==1
			invoke TxtLstMulti,[esi].style,[esi].exstyle,addr TypeEdt
		.elseif eax==4
			invoke TxtLstMulti,[esi].style,[esi].exstyle,addr TypeBtn
		.elseif eax==7 || eax==24
			invoke TxtLstMulti,[esi].style,[esi].exstyle,addr TypeCbo
		.elseif eax==13
			invoke TxtLstMulti,[esi].style,[esi].exstyle,addr TypeTrv
		.elseif eax==14
			invoke TxtLstMulti,[esi].style,[esi].exstyle,addr TypeLsv
		.elseif eax==17
			invoke TxtLstMulti,[esi].style,[esi].exstyle,addr TypeImg
		.elseif eax==20
			invoke TxtLstMulti,[esi].style,[esi].exstyle,addr TypeDtp
		.elseif eax==25
			invoke TxtLstMulti,[esi].style,[esi].exstyle,addr TypeStc
		.endif
	.elseif eax==1002
		;Dialog Menu
		invoke SendMessage,hPrpLstDlgCld,LB_RESETCONTENT,0,0
		invoke GetWindowLong,hPrj,0
		mov		edi,eax
		.while [edi].PROJECT.hmem
			.if [edi].PROJECT.ntype==TPE_MENU
				mov		edx,[edi].PROJECT.hmem
				.if [edx].MNUHEAD.menuname
					lea		edx,[edx].MNUHEAD.menuname
				.else
					invoke ResEdBinToDec,[edx].MNUHEAD.menuid,addr buffer
					lea		edx,buffer
				.endif
				invoke SendMessage,hPrpLstDlgCld,LB_ADDSTRING,0,edx
			.endif
			lea		edi,[edi+sizeof PROJECT]
		.endw
	.elseif eax==1005
		;Image
		invoke SendMessage,hPrpLstDlgCld,LB_RESETCONTENT,0,0
		invoke GetWindowLong,hPrj,0
		mov		edi,eax
		.while [edi].PROJECT.hmem
			.if [edi].PROJECT.ntype==TPE_RESOURCE
				mov		edx,[edi].PROJECT.hmem
				.while [edx].RESOURCEMEM.szname || [edx].RESOURCEMEM.value
					mov		eax,[esi].DIALOG.style
					and		eax,SS_TYPEMASK
					.if eax==SS_BITMAP
						mov		eax,0
					.elseif eax==SS_ICON
						mov		eax,2
					.endif
					.if eax==[edx].RESOURCEMEM.ntype
						push	edx
						.if [edx].RESOURCEMEM.szname
							lea		edx,[edx].RESOURCEMEM.szname
						.else
							mov		buffer,'#'
							invoke ResEdBinToDec,[edx].RESOURCEMEM.value,addr buffer[1]
							lea		edx,buffer
						.endif
						invoke SendMessage,hPrpLstDlgCld,LB_ADDSTRING,0,edx
						pop		edx
					.endif
					lea		edx,[edx+sizeof RESOURCEMEM]
				.endw
			.endif
			lea		edi,[edi+sizeof PROJECT]
		.endw
	.elseif eax==1006
		;Avi
		invoke SendMessage,hPrpLstDlgCld,LB_RESETCONTENT,0,0
		invoke GetWindowLong,hPrj,0
		mov		edi,eax
		.while [edi].PROJECT.hmem
			.if [edi].PROJECT.ntype==TPE_RESOURCE
				mov		edx,[edi].PROJECT.hmem
				.while [edx].RESOURCEMEM.szname || [edx].RESOURCEMEM.value
					.if [edx].RESOURCEMEM.ntype==3
						push	edx
						.if [edx].RESOURCEMEM.szname
							lea		edx,[edx].RESOURCEMEM.szname
						.else
							mov		buffer,'#'
							invoke ResEdBinToDec,[edx].RESOURCEMEM.value,addr buffer[1]
							lea		edx,buffer
						.endif
						invoke SendMessage,hPrpLstDlgCld,LB_ADDSTRING,0,edx
						pop		edx
					.endif
					lea		edx,[edx+sizeof RESOURCEMEM]
				.endw
			.endif
			lea		edi,[edi+sizeof PROJECT]
		.endw
	.elseif eax==1007
		;Language
	.elseif eax>65535
		;Custom control
		mov		edx,[eax+4]
		.if dword ptr [eax]==1
			invoke TxtLstFalseTrue,[esi].style,edx
		.elseif dword ptr [eax]==2
			invoke TxtLstFalseTrue,[esi].exstyle,edx
		.elseif dword ptr [eax]==3
			invoke TxtLstMulti,[esi].style,[esi].exstyle,edx
		.endif
	.endif
	assume esi:nothing
	ret

PropTxtLst endp

SetTxtLstPos proc lpRect:DWORD
	LOCAL	rect:RECT
	LOCAL	lbht:DWORD
	LOCAL	ht:DWORD

	invoke GetClientRect,hPrpLstDlg,addr rect
	mov		eax,rect.bottom
	mov		ht,eax

	invoke CopyRect,addr rect,lpRect
	invoke SendMessage,hPrpLstDlgCld,LB_GETITEMHEIGHT,0,0
	push	eax
	invoke SendMessage,hPrpLstDlgCld,LB_GETCOUNT,0,0
	.if eax>8
		mov		eax,8
	.endif
	pop		edx
	mul		edx
	add		eax,2
	mov		lbht,eax
	add		eax,rect.top
	.if eax>ht
		mov		eax,lbht
		inc		eax
		add		eax,lbHt
		sub		rect.top,eax
	.endif
	invoke SetWindowPos,hPrpLstDlgCld,HWND_TOP,rect.left,rect.top,rect.right,lbht,0
	invoke ShowWindow,hPrpLstDlgCld,SW_SHOWNOACTIVATE
	ret

SetTxtLstPos endp

PropEditChkVal proc uses esi,lpTxt:DWORD,nTpe:DWORD,lpfErr:DWORD
	LOCAL buffer[16]:BYTE
	LOCAL val:DWORD

	mov		eax,lpfErr
	mov		dword ptr [eax],FALSE
	invoke ResEdDecToBin,lpTxt
	mov		val,eax
	invoke ResEdBinToDec,val,addr buffer
	invoke lstrcmp,lpTxt,addr buffer
	.if eax
		mov		eax,lpfErr
		mov		dword ptr [eax],TRUE
		invoke MessageBox,hPrp,addr szPropErr,addr szAppName,MB_OK or MB_ICONERROR
	.endif
	mov		eax,val
	ret

PropEditChkVal endp

PropEditUpdList proc uses esi edi,lpPtr:DWORD
	LOCAL	nInx:DWORD
	LOCAL	buffer[512]:BYTE
	LOCAL	buffer1[256]:BYTE
	LOCAL	hCtl:DWORD
	LOCAL	lpTxt:DWORD
	LOCAL	fErr:DWORD
	LOCAL	lbid:DWORD
	LOCAL	val:DWORD

	mov		fErr,FALSE
	invoke SendMessage,hPrpLstDlg,LB_GETCURSEL,0,0
	.if eax!=LB_ERR
		mov		nInx,eax
		invoke SendMessage,hPrpLstDlg,LB_SETCURSEL,-1,0
		invoke ShowWindow,hPrpEdtDlgCld,SW_HIDE
		invoke ShowWindow,hPrpBtnDlgCld,SW_HIDE
		invoke ShowWindow,hPrpLstDlgCld,SW_HIDE
		;Get text
		invoke SendMessage,hPrpLstDlg,LB_GETTEXT,nInx,addr buffer
		invoke GetWindowText,hPrpEdtDlgCld,addr buffer1,sizeof buffer1
		;Find TAB char
		lea		esi,buffer
	  @@:
		mov		al,[esi]
		inc		esi
		cmp		al,09h
		jne		@b
		mov		lpTxt,esi
		;Text changed ?
		invoke lstrcmp,lpTxt,addr buffer1
		.if eax
			;Get controls hwnd
			invoke GetWindowLong,hPrpLstDlg,GWL_USERDATA
			mov		hCtl,eax
			;and ptr data
			invoke GetWindowLong,hCtl,GWL_USERDATA
			mov		esi,eax
			assume esi:ptr DIALOG
			;Get type
			invoke SendMessage,hPrpLstDlg,LB_GETITEMDATA,nInx,0
			mov		lbid,eax
			;Pos, Size or ID
			.if eax>=PRP_NUM_ID && eax<=PRP_NUM_TAB
				;Test valid num
				invoke PropEditChkVal,addr buffer1,lbid,addr fErr
				mov		val,eax
			.endif
			.if !fErr
				;What is changed
				mov		eax,dword ptr buffer
				.if eax=='maN('
					invoke lstrcpy,addr [esi].idname,addr buffer1
					.if ![esi].ntype
						invoke GetWindowLong,hDEd,DEWM_PROJECT
						mov		edx,eax
						push	edx
						invoke GetProjectItemName,edx,addr buffer1
						pop		edx
						invoke SetProjectItemName,edx,addr buffer1
					.endif
				.elseif eax==')DI('
					push	val
					pop		[esi].id
					.if ![esi].ntype
						invoke GetWindowLong,hDEd,DEWM_PROJECT
						mov		edx,eax
						push	edx
						invoke GetProjectItemName,edx,addr buffer1
						pop		edx
						invoke SetProjectItemName,edx,addr buffer1
					.endif
				.elseif eax=='tfeL'
					push	val
					pop		[esi].x
				.elseif eax==' poT'
					push	val
					pop		[esi].y
				.elseif eax=='tdiW'
					push	val
					pop		[esi].ccx
				.elseif eax=='gieH'
					push	val
					pop		[esi].ccy
				.elseif eax=='atS('
					sub		esi,sizeof DLGHEAD
					push	val
					pop		(DLGHEAD ptr [esi]).ctlid
					add		esi,sizeof DLGHEAD
				.elseif eax=='IbaT'
					invoke SetNewTab,hCtl,val
				.elseif eax=='tpaC'
					invoke lstrcpy,addr [esi].caption,addr buffer1

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -