用api在窗口中使用标准控件list

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

首先定义下面三个变量

    HWND hWndList;
    LVCOLUMN ColInfo = {0};//列
    LV_ITEM item;       // 项


然后在WM_CREATE事件中放入先面的代码;



      hWndList = CreateWindowEx(WS_EX_DLGMODALFRAME, WC_LISTVIEW,
            WC_LISTVIEW,
            WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS| WS_CLIPCHILDREN |
           LVS_REPORT | LVS_AUTOARRANGE | LVS_SHOWSELALWAYS | LVS_SHAREIMAGELISTS | LVS_SINGLESEL,
            0,
            0,
            300,
            300,
            hWnd,
            NULL,
            (HINSTANCE) GetWindowLong (hWnd, GWL_HINSTANCE),
            //           g_hInstance,
            NULL
        );
        
        ColInfo.mask = LVCF_TEXT | LVCF_WIDTH | LVCF_FMT;
        ColInfo.iSubItem = 0;
        ColInfo.fmt = LVCFMT_CENTER;
        ColInfo.cx  = 140;
        ColInfo.pszText = "lidengwang";
        ColInfo.cchTextMax = 50;
        SendMessage(hWndList, LVM_INSERTCOLUMN, WPARAM(0), LPARAM(&ColInfo));
        SendMessage(hWndList, LVM_INSERTCOLUMN, WPARAM(0), LPARAM(&ColInfo));
        SendMessage(hWndList, LVM_INSERTCOLUMN, WPARAM(0), LPARAM(&ColInfo));

        memset(&item,0,sizeof(item)); // Zero struct's Members
        item.mask=LVIF_TEXT;   // Text Style
        item.cchTextMax = 256; // Max size of test
        item.iItem=0;          // choose item  
        item.iSubItem=0;       // Put in first coluom
        item.pszText="Item 0"; // Text to display (can be from a char variable) (Items)

        SendMessage(hWndList,LVM_INSERTITEM,0,(LPARAM)&item); // Send info to the Listview

        memset(&item,0,sizeof(item)); // Zero struct's Members
        item.mask=LVIF_TEXT;   // Text Style
        item.cchTextMax = 256; // Max size of test
        item.iItem=1;          // choose item  
        item.iSubItem=0;       // Put in first coluom
        item.pszText="Item 0"; // Text to display (can be from a char variable) (Items)
        SendMessage(hWndList,LVM_INSERTITEM,0,(LPARAM)&item); // Send info to the Listview


Windows API每日一练》8.5 listbox控件 在上述示例中,我们首先获取列表框控件的句柄 hListBox,然后使用 LB_ADDSTRING 消息或 ListBox_AddString 函数将字符串项添加到列表框中。要选择列表框中的项目并提取选中的项目,你可以使用 LB_GETCURSEL 消息或 ListBox_GetCurSel 函数来获取当前选中项目的索引。●WM_COMMAND:列表框的选择变化会触发 WM_COMMAND 消息,其中的 wParam 参数指示了列表框的控件标识符,而 lParam 参数指示了列表框控件的句柄。 阅读详情

相关推荐

UG/NX二次开发:利用WINAPI实现UI控件隐藏后功能不失效的完美方案

Windows桌面应用开发中,UI控件的显示与隐藏是基础交互逻辑。传统方法通过设置控件的可见性属性实现隐藏,但这可能导致控件句柄失效,后台逻辑无法访问。其原理在于高级UI框架在隐藏控件时,常会进行资源清理或状态重置,以确保界面性能。这一痛点在高阶工程软件二次开发中尤为突出,例如在UG/NX的Block UI Styler开发中,需要控件在隐藏时仍能响应回调或保持数据。通过深入理解Windows窗口机制,开发者可以绕过框架限制,直接操作窗口句柄(HWND)。本文聚焦于UGUIID的获取与ShowWindow

weixin_30596735的博客 389

Windows 使用ListView控件

创建ListView CreateWindow(WC_LISTVIEW, _T("这是ListView"), WS_CHILD|WS_VISIBLE|WS_BORDER|LVS_REPORT|LVS_SHOWSELALWAYS, 180, 50, 500, 200, hWnd, (HMENU)IDC_LIST_1, NULL, NULL); 插入 第0行第0列 // 给ListView添加 第0行第0列 LVCOLUMN colInfo = {0}; colInfo.mask |= LVCF_WIDTH

hugang的博客 1190

深入GetDlgItem:Windows控件编程从高级封装到底层句柄操作

Windows桌面应用开发中,控件操作是GUI编程的核心基础。从高级框架如WinForms的面向对象模型,到底层基于窗口句柄的消息机制,构成了GUI编程的不同抽象层次。理解窗口句柄与控件ID的概念,是掌握Windows GUI底层原理的关键。GetDlgItem作为经典的Windows API,通过父窗口句柄和控件ID获取子控件句柄,实现了从对话框资源到具体控件的精准定位。这一机制在动态控件访问、跨进程操作、自动化测试等场景中具有重要技术价值,特别是在处理非托管代码交互、底层消息派发等高级需求时不可或缺。

cuankuangzhong6373的博客 460

API编程基本控件使用

管理控件函数:ShowWindow()MoveWindow()CreateWindow()CreateWindowEx()系统预定义的窗口类:BUTTON   按钮控件COMBOBOX 组合框控件EDIT   编辑框控件LISTBOX   列表框控件SCROLLBAR 滚动条控件STATIC   静态控件子窗口控件通过向其父窗口发送WM_COMMAND消息进行通讯。WM_COMMAND

zeng622peng的专栏 1130

java接口list用法_Java集合框架中List接口的简单使用

Java集合框架可以简单的理解为一种放置对象的容器,和数学中的集合概念类似,Java中的集合可以存放一系列对象的引用,也可以看做是数组的提升,Java集合类是一种工具类,只有相同类型的对象引用才可以放到同一个集合中,否则是不能放进去的;集合可以对元素进行简单快速的查找、插入、删除操作某些集合可以有映射的关系数组的长度是固定的,而集合的长度是跟随元素的个数动态变化的,灵活性和扩展性都比数组更加优越数...

weixin_29770217的博客 278

api 编写 listview(ListControl)

Using ListView control under Win32 API         Submitted by Isaiah.Net on Sunday, October 23, 2005 - 23:58    --------------------------------------------------------------------------------Introduc

碎心竹的专栏 5467

深入解析WM_CREATE与WM_INITDIALOG:Windows窗口创建与消息机制核心原理

Windows桌面应用开发中,消息机制是GUI编程的基石,它定义了应用程序与操作系统之间的通信方式。其核心原理在于系统通过消息队列和窗口过程(WndProc)来驱动事件响应,实现用户交互。理解这一机制的技术价值在于,它是构建稳定、高效图形界面的基础,直接影响程序的响应性和可靠性。无论是开发嵌入式上位机、工业控制软件还是通用桌面应用,掌握窗口创建期间的关键消息流都至关重要。本文聚焦于WM_CREATE和WM_INITDIALOG这两个在**窗口创建**和**对话框初始化**阶段的核心消息,通过对比它们的触发

weixin_30522095的博客 760

MFC界面控件开发指南:从基础到高级实战技巧

Windows桌面应用开发中,用户界面(UI)是软件与用户交互的核心。MFC(Microsoft Foundation Classes)作为一套经典的C++类库,通过封装Windows标准控件和公共控件,为开发者提供了构建结构化界面的高效框架。其核心机制包括对话框数据交换(DDX)和数据验证(DDV),能够简化控件与程序变量间的数据同步,提升开发效率。在工程实践中,掌握控件的静态与动态创建、消息映射与事件处理,是构建稳定、可维护应用界面的基础。无论是维护遗留系统还是开发特定行业应用,深入理解CListCt

weixin_33868027的博客 363

如何快速掌握XCGUI:打造高效Go GUI应用的终极指南

如果你正在寻找一个功能强大、性能卓越的Go语言GUI框架,那么XCGUI绝对值得你深入了解。作为基于炫彩界面库封装的Go语言GUI解决方案,XCGUI提供了近2000个API接口,让开发者能够轻松构建美观、高效的桌面应用程序界面。 ## 🚀 为什么选择XCGUI?打破Go GUI开发局限 Go语言在服务器端开发领域表现出色,但在桌面GUI开发方面一直缺乏成熟的本土解决方案。XCGUI的出现彻

gitblog_01102的博客 1154

MFC应用程序(控件集合)——标签控件_IP控件_时间控件_List Control控件_Tree Control控件_命令按钮_列表框_组合框_图片_滚动控件

标签控件应用 【Tab Control 标签控件】 标签控件也比较常见。它可以把多个页面集成到一个窗口中, 每个页面对应一个标签,用户点击某个标签时,它对应的页 面就会显示。 使用标签控件我们可以同时加载多个有关联的页面,用 户只需点击标签即可实现页面切换,方便灵活的进行操作。 每个标签除了可以显示标签文本,还可以显示图标。 标签控件相当于是一个页面的容器,可以容纳多个对话 框,而且一般也只容纳对...

流楚丶格念的博客 4943

深入掌握MFC控件:从消息映射到自定义绘制的实战指南

Windows桌面开发领域,GUI控件的有效管理是构建稳定应用的基础。其核心原理基于消息驱动架构,通过消息映射机制实现用户交互与程序逻辑的绑定。掌握控件的样式设置、数据交换(DDX/DDV)及自定义绘制等高级技术,能显著提升软件的可维护性与扩展性,尤其在处理复杂交互和性能优化时价值凸显。这些技术广泛应用于需要长期维护的工业控制软件、金融终端等C++桌面应用场景。本文聚焦于MFC框架,针对开发中常见的控件禁用、坐标变换(如旋转后按右下角旋转)等具体问题,提供从概念到落地的系统性解决方案。

weixin_34342992的博客 307

CLI-Anything:让AI Agent直接操控桌面软件的可访问性接口层

GUI自动化是AI Agent落地办公场景的核心瓶颈,传统方案依赖OCR或按键模拟,稳定性差、泛化弱。CLI-Anything另辟蹊径,基于操作系统原生可访问性APIWindows UI Automation/macOS AX API/Linux AT-SPI),将GUI操作抽象为标准化CLI命令,实现‘不改软件、不写脚本、不依赖界面图像’的原子级控制。它本质是AI与真实软件之间的协议翻译层,使Agent能像调用REST API一样调用微信、WPS、Chrome等2000+桌面应用。技术价值在于统一技能接

weixin_34167819的博客 341

MFC中扩展CListCtrl实现单元格编辑框与下拉框功能

CListCtrl是 MFC 中用于显示和操作列表数据的核心控件之一,支持多种视图模式,如报表视图(LVS_REPORT)、图标视图(LVS_ICON)等。在报表视图下,可通过和InsertItem方法构建表格结构,并使用填充单元格内容。m_listCtrl.InsertColumn(0, _T("姓名"), LVCFMT_LEFT, 100);m_listCtrl.InsertItem(0, _T("张三"));

weixin_35756690的博客 1204

同花顺自动化交易接口框架:本地化UI自动化工程实践

同花顺自动化交易是指在不依赖官方API的前提下,通过Windows UI Automation与进程通信技术,将PC客户端转化为可编程交易终端的技术路径。其核心原理是绕过OCR和模拟点击,直接操作标准控件句柄与内存数据结构,实现委托、撤单、行情同步等原子行为的高可靠性执行。该方案兼顾合规性与工程落地性,满足个人投资者策略封装与开发者构建私有交易中台的双重需求,在量化实盘、多账户协同、网格交易等场景中已验证稳定运行。本文聚焦‘同花顺自动化交易’与‘接口框架’两大热词,详解如何基于UI Automation构建

weixin_29611239的博客 247

用Tcl/Tk打造FPGA仿真交互界面:从Testbench到波形自动化

FPGA仿真流程中,Testbench文件管理、仿真脚本编写和波形查看往往耗费大量精力,尤其在多方案对比时,手动操作不仅低效而且容易出错。EDA工具链如Vivado和ModelSim普遍内置Tcl解释器,Tcl/Tk因此成为构建仿真辅助工具的理想选择。利用Tk标准控件可以快速搭建图形界面,直接调用仿真命令,实现文件扫描、依赖排序、仿真脚本自动生成与后台执行,以及波形文件的一键获取。这种方式消除了反复切换工具链的上下文成本,让工程师专注于设计验证本身。本文基于实际工程实践,介绍如何从零构建一套交互式仿真环境,

weixin_34060299的博客 374

深入解析nim_duilib源码:从DirectUI原理到桌面UI框架实战

DirectUI是一种先进的桌面用户界面架构思想,它摒弃了传统每个控件对应一个系统窗口句柄的模式,通过统一的绘制表面和自绘机制来构建界面。其核心原理在于将控件作为逻辑对象进行管理,由框架统一处理消息分发、布局计算和渲染绘制,从而显著减少系统资源开销并提升渲染性能。这种架构的技术价值在于实现了高度的界面定制灵活性和跨平台一致性,广泛应用于对视觉表现和性能要求较高的桌面客户端软件中。在工程实践中,基于DirectUI思想的nim_duilib框架通过分层设计将系统API调用、核心引擎和控件层解耦,其中消息循环作

diaohong5075的博客 450

MFC控件开发实战:从基础原理到高级应用与避坑指南

Windows GUI编程是桌面应用开发的基础,其核心在于理解消息循环与控件机制。MFC(Microsoft Foundation Classes)作为经典的C++框架,通过封装Win32 API,提供了面向对象的控件编程模型,如CButton、CEdit、CListCtrl等,实现了高效的原生界面开发。其技术价值在于直接基于Windows消息驱动,无需额外运行时依赖,生成的程序体积小、启动快、资源消耗低,特别适合对性能和稳定性要求严苛的场景,如工业控制、金融终端及遗留系统维护。在应用层面,掌握控件的动态创

weixin_30613727的博客 547

基于多模态AI的GUI自动化:从视觉理解到智能执行的完整实践

图形用户界面自动化是提升软件测试、办公效率和机器人流程自动化(RPA)的关键技术。传统自动化脚本依赖于固定的坐标或元素定位器,一旦界面发生变化便容易失效。其核心原理在于模拟人类与计算机的交互过程,即“感知-决策-执行”的闭环。随着多模态大模型和视觉语言模型的发展,自动化技术正从“脚本驱动”向“视觉驱动”演进,通过让AI“看懂”屏幕内容并自主规划操作步骤,显著提升了自动化流程的健壮性和灵活性。这种基于视觉理解的智能体技术,能够处理更复杂的桌面应用、网页及混合界面,在软件测试、数据录入、日常办公等场景中展现出巨

weixin_30430169的博客 438

WinForm控件开发全解析:从基础添加到高级应用与性能优化

在C#桌面开发中,控件是构建用户界面的核心组件,其本质是封装了特定功能的可视化对象,通过属性、方法和事件与用户交互。控件的生命周期管理、事件驱动机制以及布局原理构成了WinForm开发的基础。掌握控件的设计与运行时添加方式,能够显著提升开发效率与界面灵活性,这对于实现数据可视化、实时监控等应用场景至关重要。例如,通过PictureBox控件可以实现图像处理功能,而DataGridView则是数据展示的利器。本文深入探讨了控件的动态创建、事件绑定、性能优化等高级话题,并融入了双缓冲技术和异步UI更新等热词,帮

weixin_33849215的博客 450
上一篇: 2009年,你好!
下一篇: 输入法(IME)实现原理
ayqlj
博客等级 码龄23年 4粉丝 3原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值