oninitpopupmenu.asm

来自「一个十六进制编辑器源代码,cool!」· 汇编 代码 · 共 33 行

ASM
33
字号
OnInitPopupMenu proto:DWORD ,:DWORD ,:DWORD
_OnInitPopupMenu macro 
	invoke OnInitPopupMenu,hWin,wParam,lParam
	endm
.code
;MF_ENABLED=False
;MF_GRAYED=True
OnInitPopupMenu proc hWin,wParam,lParam
		push edi
		cmp dwFileType,FILE_NORMAL
		setne al
		movzx edi,al
		;插入,删除只有在正常模式才能使用
		invoke EnableMenuItem,hMenu,40011,edi;插入对话框
		invoke EnableMenuItem,hMenu,40012,edi;插入一个字节
		invoke EnableMenuItem,hMenu,40015,edi;从剪切板插入
		.if isBlockSelMode;列模式,不允许删除
			mov edi,MF_GRAYED 
		.endif
		invoke EnableMenuItem,hMenu,40010,edi;删除
		call _CanChangeBlockMode
		test eax,eax
		setz al
		movzx eax,al
		invoke EnableMenuItem,hMenu,40017,eax;切换选择模式
		cmp BYTE ptr [szFileName+1],':'
		setne al
		movzx eax,al
		invoke EnableMenuItem,hMenu,40020,eax;打开
		pop edi
		ret
OnInitPopupMenu endp

⌨️ 快捷键说明

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