set_listbox_hscroll.asm

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

ASM
32
字号
_SetLBHScroll proto:DWORD ,:DWORD 
.code
;为ListBox添加滚动条
;如果@nID为0,表@hwnd是listbox的句柄
;如果@nID不为0,则它是listbox的ID,@hwnd是listbox的父窗体的句柄
_SetLBHScroll proc uses esi edi ebx edx @hwnd,@nID
	local @rc:RECT ,hdc
	local @szBuf[255]:BYTE ,@size:SIZEL 
	.if @nID
		invoke GetDlgItem,@hwnd,@nID
		mov @hwnd,eax
	.endif
	invoke GetDC,@hwnd
	mov hdc,eax
	invoke SendMessage,@hwnd,LB_GETCOUNT ,0,0
	mov edi,eax
	xor esi,esi
	xor ebx,ebx
	.while esi<edi
		invoke SendMessage,@hwnd,LB_GETTEXT ,esi,addr @szBuf
		lea edx ,@size
		invoke GetTextExtentPoint,hdc,addr @szBuf,eax,edx
		.if @size.x>ebx
			mov ebx,@size.x
		.endif
		inc esi
	.endw
	invoke SendMessage,@hwnd,LB_SETHORIZONTALEXTENT,ebx,0
	invoke ReleaseDC,@hwnd,hdc
	ret
_SetLBHScroll endp

⌨️ 快捷键说明

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