Win32汇编ListBox最简Demo

代码;

.386
.model flat, stdcall
option casemap :none

include S:\masm32\include\windows.inc
include S:\masm32\include\user32.inc
include S:\masm32\include\kernel32.inc
include S:\masm32\include\gdi32.inc
includelib S:\masm32\lib\user32.lib
includelib S:\masm32\lib\kernel32.lib
includelib S:\masm32\lib\gdi32.lib

DLG_MAIN	equ	1
IDC_LISTBOX1	equ	101

		.data?

hInstance	dd	?

		.const
szText1		db	'listbox项目1',0
szText2		db	'listbox项目2',0
szText3		db	'listbox项目3',0
szText4		db	'listbox项目4',0
szText5		db	'listbox项目5',0

		.code

_ProcDlgMain	proc	uses ebx edi esi hWnd,wMsg,wParam,lParam
		local	@szBuffer[128]:byte
		local	@szBuffer1[128]:byte
		local	@szTextBuff[2048]:byte
		local	@dwCount

		mov	eax,wMsg
		.if	eax == WM_CLOSE
			invoke	EndDialog,hWnd,NULL
		.elseif	eax == WM_INITDIALOG

                    ; 初始化列表框
                    invoke	SendDlgItemMessage,hWnd,IDC_LISTBOX1,LB_ADDSTRING,0,addr szText1
                    invoke	SendDlgItemMessage,hWnd,IDC_LISTBOX1,LB_ADDSTRING,0,addr szText2
                    invoke	SendDlgItemMessage,hWnd,IDC_LISTBOX1,LB_ADDSTRING,0,addr szText3
                    invoke	SendDlgItemMessage,hWnd,IDC_LISTBOX1,LB_ADDSTRING,0,addr szText4
                    invoke	SendDlgItemMessage,hWnd,IDC_LISTBOX1,LB_ADDSTRING,0,addr szText5

		.elseif	eax == WM_COMMAND
		.else
			mov	eax,FALSE
			ret
		.endif
		mov	eax,TRUE
		ret

_ProcDlgMain	endp

start:
		invoke	GetModuleHandle,NULL
		mov	hInstance,eax
		invoke	DialogBoxParam,hInstance,DLG_MAIN,NULL,offset _ProcDlgMain,NULL
		invoke	ExitProcess,NULL

		end	start
#include		<resource.h>

#define	DLG_MAIN		1
#define IDC_LISTBOX1	101

DLG_MAIN DIALOG 163, 160, 190, 108
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "列表框控件Demo"
FONT 9, "宋体"
{
 LISTBOX IDC_LISTBOX1, 6, 5, 55, 86, LBS_STANDARD
}

构建如下;

运行如下;

 

在Python中使用win32gui模块来操作列表框(listbox)有几个步骤。首先,你需要获取列表框的句柄(handle)。你可以使用win32gui.FindWindow函数来查找包含列表框的父窗口句柄。如果你已经有了父窗口的句柄,那么可以使用win32gui.FindWindowEx函数来查找列表框的子窗口句柄。 一旦你获取到了列表框的句柄,你可以使用win32gui.SendMessage函数来发送消息给列表框,以实现列表框的操作。例如,要向列表框添加一个项,你可以使用win32gui.SendMessage函数发送LB_ADDSTRING消息,并传递要添加的项的文本作为参数。 如果你想获取列表框中的所有项,你可以使用win32gui.SendMessage函数发送LB_GETCOUNT消息来获取项的数量,然后使用win32gui.SendMessage函数和LB_GETTEXT消息来逐个获取每个项的文本。 如果你想实现拖拽功能,你可以使用win32gui模块的一些函数来处理鼠标事件。你可以使用win32gui.SetCapture函数来捕获鼠标事件,在鼠标移动期间使用win32gui.SetCursor函数来设置鼠标指针的样式,以实现拖拽效果。 总结起来,在Python中使用win32gui模块操作列表框的步骤如下: 1. 获取列表框的父窗口句柄和子窗口句柄。 2. 使用win32gui.SendMessage函数发送消息给列表框,实现列表框的操作。 3. 如果需要获取列表框中的项,使用win32gui.SendMessage函数发送相应消息获取项的数量和文本。 4. 如果需要实现拖拽功能,使用win32gui模块的函数来处理鼠标事件。 希望以上信息对你有帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值