Win32汇编ListView控件学习

此控件比较复杂;和基础win32控件不同;需要先初始化Windows公共控件库,

    invoke    InitCommonControls

之后才可使用;

lvdemo.asm,

		.386.model flat, stdcalloption casemap :none   ; case sensitiveinclude		windows.inc
include		user32.inc
includelib	user32.lib
include		kernel32.inc
includelib	kernel32.lib
include		comctl32.inc
includelib	comctl32.lib
include		odbc32.inc
includelib	odbc32.libICO_MAIN	equ	1000
DLG_MAIN	equ	2000
IDC_ADD	equ	2002
IDC_DEL	equ	2003
IDC_CLEAR	equ	2005
IDC_LIST	equ	2006.data
szShi    db      '小石子',0
szLi    db      '小李子',0.data?
hInstance	dd	?
hWinMain	dd	?		;对话框句柄
hListView	dd	?		;列表框句柄.const
szStr1	db	"信息1",0
szStr2	db	'信息2',0.code
include		_ListView.asm_ProcDlgMain	proc	uses ebx edi esi hWnd,wMsg,wParam,lParamlocal	@stWsa:WSADATAmov	eax,wMsg.if	eax ==	WM_COMMANDmov	eax,wParam.if	ax ==	IDC_ADDinvoke	_ListViewAddColumn,hListView,0,50,addr szStr1invoke	_ListViewAddColumn,hListView,1,50,addr szStr2invoke	_ListViewSetItem,hListView,0,-1,0invoke	_ListViewSetItem,hListView,0,0,addr szShiinvoke	_ListViewSetItem,hListView,0,1,addr szLi.elseif	ax ==	IDC_DEL.elseif	ax ==	IDC_CLEARinvoke	_ListViewClear,hListView.endif.elseif	eax ==	WM_INITDIALOGpush	hWndpop	hWinMaininvoke	LoadIcon,hInstance,ICO_MAINinvoke	SendMessage,hWnd,WM_SETICON,ICON_BIG,eaxinvoke	GetDlgItem,hWnd,IDC_LISTmov	hListView,eaxinvoke	SendMessage,hListView,LVM_SETEXTENDEDLISTVIEWSTYLE,\0,LVS_EX_GRIDLINES or LVS_EX_FULLROWSELECTinvoke	ShowWindow,hListView,SW_SHOW.elseif	eax ==	WM_CLOSEinvoke	EndDialog,hWinMain,NULL.elsemov	eax,FALSEret.endifmov	eax,TRUEret_ProcDlgMain	endpstart:invoke	InitCommonControlsinvoke	GetModuleHandle,NULLmov	hInstance,eaxinvoke	DialogBoxParam,eax,DLG_MAIN,NULL,offset _ProcDlgMain,0invoke	ExitProcess,NULLend	start

lvdemo.rc,


#include	<resource.h>#define	ICO_MAIN		1000
#define	DLG_MAIN		2000#define	IDC_ADD		2002
#define	IDC_DEL		2003#define	IDC_CLEAR		2005
#define	IDC_LIST		2006ICO_MAIN	icon	"Main.ico"DLG_MAIN DIALOG 51, 78, 465, 237
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME
CAPTION "ListView示例"
FONT 9, "宋体"
{PUSHBUTTON "Add", IDC_ADD, 50, 20, 50, 14PUSHBUTTON "Delete", IDC_DEL, 200, 20, 50, 14, WS_TABSTOPDEFPUSHBUTTON "Clear", IDC_CLEAR, 350, 20, 50, 14, BS_DEFPUSHBUTTON | WS_TABSTOPCONTROL "", IDC_LIST, "SysListView32", 13 | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 2, 56, 460, 179}

include        _ListView.asm

 _ListView.asm 这是书上的;

运行;一开始ListView出来是行和列都没有;

invoke    _ListViewAddColumn,hListView,0,50,addr szStr1

    增加一个列,列号0,宽度50, 列标题是szStr1;

invoke    _ListViewSetItem,hListView,0,-1,0

    插入一个空行,先要插入空行,后面才能插入数据;

invoke    _ListViewSetItem,hListView,0,0,addr szShi

    设置0行0列的数据为szShi;

 

点Clear清空全部的行和列; 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/499052.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Windows Docker 部署 SQL Server

部署 SQL Server 打开 Docker Desktop&#xff0c;切换到 Linux 内核。然后在 PowerShell 执行下面命令&#xff0c;即可启动一个 SQL Server 服务&#xff0c;这里安装的是 2022 年版本 docker run -e "ACCEPT_EULAY" -e "MSSQL_SA_PASSWORDSQL123abcABC!&qu…

VR全景HDR拍摄教程

什么是HDR&#xff1f; HDR可以用在哪里&#xff1f; 书面解释&#xff1a;HDR&#xff08;高动态范围 High Dynamic Range&#xff09;摄影&#xff0c;是摄影领域广泛使用的一种技术。 是不是有点懵&#xff1f; 我们来看一个实际的拍摄现场环境&#xff0c;你就懂了 我们…

电商网站数据采集配合socks5代理ip怎么进行?

电商网站数据采集是一项重要的任务&#xff0c;可以帮助企业了解市场需求、竞品分析、用户行为等方面。在进行电商网站数据采集时&#xff0c;有时需要配合使用socks5代理IP。本文将介绍如何进行电商网站数据采集配合socks5代理IP。 一、代理IP介绍 代理IP是一种可以隐藏用户真…

Ps:明度直方图

明度 Luminosity直方图显示了图像中各个亮度级别的像素分布情况。 与 RGB 直方图不同&#xff0c;“明度”直方图专注于图像的亮度信息&#xff0c;而不是单独的颜色信息。 在“直方图”面板的通道中选择“明度”。 “明度”直方图提供了一种量化的方式来理解图像的整体明暗结构…

内衣洗衣机希亦、RUUFFY、由利强势对决,实测数据谁能赢?

对于那些追求品质生活、分类洗涤的用户而言&#xff0c;小型洗衣机可以满足我们对不同类型衣物分开洗涤的需求&#xff0c;例如将内衣、袜子等小件衣物与外套等分开洗涤&#xff0c;以保持衣物的清洁和卫生。并且如果您家中有宝宝&#xff0c;或者您对个人卫生和健康有较高要求…

ElasticSearch架构介绍及原理解析

ElasticSearch架构介绍及原理解析文章目录 一、Elasticsearch是什么&#xff1f;1.简介2.历史与发展3.有关概念1.cluster2.shards3.replicas4.recovery5.river6.gateway7.discovery.zen8.Transport 4.安装 二、ElasticSearch架构介绍及原理解析1.基本架构1.1 进程节点1.2 负载均…

深度学习介绍与环境搭建

深度学习介绍与环境搭建 慕课大学人工智能学习笔记&#xff0c;自己学习记录用的。&#xff08;赋上连接&#xff09; https://www.icourse163.org/learn/ZUCC-1206146808?tid1471365447#/learn/content?typedetail&id1256424053&cid1289366515人工智能、机器学习与…

[HackmyVM]靶场 W140

kali:192.168.56.104 主机发现 arp-scan -l 靶机ip:192.168.56.107 端口扫描 nmap -p- 192.168.56.107 开启了22 80 端口 目录扫描 gobuster dir -u http://192.168.56.107 -x html,txt,php,bak,zip --wordlist/usr/share/wordlists/dirb/common.txt 发现service.html可以文…

【Java】基本数据类型、包装类与字符串间的转换 例题

写在前面&#xff1a; 关于这道题&#xff0c;初见感觉有点cpu烧坏了&#xff0c;准确来说是看了网上的一些讲解都感觉不尽人意。自己整理了一下&#xff0c;希望能帮助到大家。 题目&#xff1a; 如下两个题目输出结果相同吗&#xff1f;各是什么。 Object o1 true ? new…

什么是物联网?

今天这篇文章写的相关内容就是带领大家了解什么是物联网&#xff0c;之前写的文章大多都是一些物联网的未来&#xff0c;行业的解决方案等&#xff1b;话不多说开始进入正题吧! 物联网(IoT)是一个包罗万象的术语&#xff0c;指的是越来越多的电子产品&#xff0c;它们不是传统的…

rk3568 uboot 启动卡死问题

rk3568 uboot 启动卡死如下图所示&#xff1a; 该问题为 Rockchip 设定初始化动态内存接口频率导致。将CONFIG_ROCKCHIP_DMC_FS配置项去掉即可。

c++阶梯之模板初阶

1. 泛型编程 void Swap(int& x, int& y) {int tmp x;x y;y tmp; }void Swap(double& x, double& y) {double tmp x;x y;y tmp; }void Swap(char& x, char& y) {char tmp x;x y;y tmp; } int main() {int a 10, b 20;double c 1.1, d 2.2…