当前位置: 首页 > news >正文

MFC中如何使用CListCtrl可以编辑,并添加鼠标右键及双击事件。

要在MFC中使用CListCtrl来实现编辑功能,可以按照以下步骤进行操作:

  1. 在对话框资源中添加CListCtrl控件,并设置合适的属性。
  2. 在对话框类的头文件中添加成员变量来管理CListCtrl控件,例如:```
    CListCtrl m_listCtrl;
3. 在OnInitDialog函数中添加以下代码来初始化CListCtrl控件:

m_listCtrl.SubclassDlgItem(IDC_LIST_CONTROL, this);
m_listCtrl.InsertColumn(0, _T(“Column 1”), LVCFMT_LEFT, 100);
m_listCtrl.InsertColumn(1, _T(“Column 2”), LVCFMT_LEFT, 100);
m_listCtrl.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);

4. 在对话框类的头文件中添加消息映射:
```cpp
afx_msg void OnLvnEndlabeleditListControl(NMHDR *pNMHDR, LRESULT *pResult);
afx_msg void OnNMRClickListControl(NMHDR *pNMHDR, LRESULT *pResult);
afx_msg void OnLvnItemActivateListControl(NMHDR *pNMHDR, LRESULT *pResult);
  1. 在消息映射表中添加以下映射关系:
ON_NOTIFY(LVN_ENDLABELEDIT, IDC_LIST_CONTROL, &CYourDialogClass::OnLvnEndlabeleditListControl)
ON_NOTIFY(NM_RCLICK, IDC_LIST_CONTROL, &CYourDialogClass::OnNMRClickListControl)
ON_NOTIFY(NM_DBLCLK, IDC_LIST_CONTROL, &CYourDialogClass::OnLvnItemActivateListControl)
  1. 在源文件中添加以下函数实现对应的消息处理:
void CYourDialogClass::OnLvnEndlabeleditListControl(NMHDR *pNMHDR, LRESULT *pResult)
{LV_DISPINFO* pDispInfo = (LV_DISPINFO*)pNMHDR;LV_ITEM* pItem = &pDispInfo->item;CString strNewValue = pItem->pszText;int nItem = pItem->iItem;int nSubItem = pItem->iSubItem;// 处理编辑完成后的新值// ...*pResult = 0;
}void CYourDialogClass::OnNMRClickListControl(NMHDR *pNMHDR, LRESULT *pResult)
{LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR);// 处理鼠标右键事件// ...*pResult = 0;
}void CYourDialogClass::OnLvnItemActivateListControl(NMHDR *pNMHDR, LRESULT *pResult)
{LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR);// 处理双击事件// ...*pResult = 0;
}

通过以上步骤,你可以在MFC中使用CListCtrl实现编辑功能,并添加鼠标右键和双击事件的处理。要在MFC中使用CListCtrl来实现编辑功能,可以按照以下步骤进行操作:

  1. 在对话框资源中添加CListCtrl控件,并设置合适的属性。
  2. 在对话框类的头文件中添加成员变量来管理CListCtrl控件,例如:```
    CListCtrl m_listCtrl;
3. 在OnInitDialog函数中添加以下代码来初始化CListCtrl控件:

m_listCtrl.SubclassDlgItem(IDC_LIST_CONTROL, this);
m_listCtrl.InsertColumn(0, _T(“Column 1”), LVCFMT_LEFT, 100);
m_listCtrl.InsertColumn(1, _T(“Column 2”), LVCFMT_LEFT, 100);
m_listCtrl.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);

4. 在对话框类的头文件中添加消息映射:
```cpp
afx_msg void OnLvnEndlabeleditListControl(NMHDR *pNMHDR, LRESULT *pResult);
afx_msg void OnNMRClickListControl(NMHDR *pNMHDR, LRESULT *pResult);
afx_msg void OnLvnItemActivateListControl(NMHDR *pNMHDR, LRESULT *pResult);
  1. 在消息映射表中添加以下映射关系:
ON_NOTIFY(LVN_ENDLABELEDIT, IDC_LIST_CONTROL, &CYourDialogClass::OnLvnEndlabeleditListControl)
ON_NOTIFY(NM_RCLICK, IDC_LIST_CONTROL, &CYourDialogClass::OnNMRClickListControl)
ON_NOTIFY(NM_DBLCLK, IDC_LIST_CONTROL, &CYourDialogClass::OnLvnItemActivateListControl)
  1. 在源文件中添加以下函数实现对应的消息处理:
void CYourDialogClass::OnLvnEndlabeleditListControl(NMHDR *pNMHDR, LRESULT *pResult)
{LV_DISPINFO* pDispInfo = (LV_DISPINFO*)pNMHDR;LV_ITEM* pItem = &pDispInfo->item;CString strNewValue = pItem->pszText;int nItem = pItem->iItem;int nSubItem = pItem->iSubItem;// 处理编辑完成后的新值// ...*pResult = 0;
}void CYourDialogClass::OnNMRClickListControl(NMHDR *pNMHDR, LRESULT *pResult)
{LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR);// 处理鼠标右键事件// ...*pResult = 0;
}void CYourDialogClass::OnLvnItemActivateListControl(NMHDR *pNMHDR, LRESULT *pResult)
{LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR);// 处理双击事件// ...*pResult = 0;
}

通过以上步骤,你可以在MFC中使用CListCtrl实现编辑功能,并添加鼠标右键和双击事件的处理。

相关文章:

MFC中如何使用CListCtrl可以编辑,并添加鼠标右键及双击事件。

要在MFC中使用CListCtrl来实现编辑功能&#xff0c;可以按照以下步骤进行操作&#xff1a; 在对话框资源中添加CListCtrl控件&#xff0c;并设置合适的属性。在对话框类的头文件中添加成员变量来管理CListCtrl控件&#xff0c;例如&#xff1a; CListCtrl m_listCtrl; 3. 在O…...

[每周一更]-(第81期):PS抠图流程(扭扭曲曲的身份证修正)

应朋友之急&#xff0c;整理下思路&#xff0c;分享一下~~ 分两步走&#xff1a;先用磁性套索工具圈出要处理的图&#xff1b;然后使用透视剪裁工具&#xff0c;将扭曲的图片拉平即可&#xff1b;(macbook pro) 做事有规则&#xff0c;才能更高效;用什么工具&#xff0c;先列举…...

Kafka安全认证机制详解之SASL_PLAIN

一、概述 官方文档&#xff1a; https://kafka.apache.org/documentation/#security 在官方文档中&#xff0c;kafka有五种加密认证方式&#xff0c;分别如下&#xff1a; SSL&#xff1a;用于测试环境SASL/GSSAPI (Kerberos) &#xff1a;使用kerberos认证&#xff0c;密码是…...

2023南京理工大学通信工程818信号系统及数电考试大纲

注&#xff1a;&#xff08;Δ&#xff09;表示重点内容。具体内容详见博睿泽信息通信考研论坛 参考书目&#xff1a; [1] 钱玲&#xff0c;谷亚林&#xff0c;王海青. 信号与系统&#xff08;第五版&#xff09;. 北京&#xff1a;电子工业出版社 [2] 郑君里&#xff0c;应…...

wsl(ubuntu)创建用户

我们打卡ubuntu窗口&#xff0c;如果没有创建用户&#xff0c;那么默认是root用户 用户的增删改查 查 查询所有的用户列表 cat /etc/passwd | cut -d: -f1cat /etc/passwd: 这个命令用于显示 /etc/passwd 文件的内容。/etc/passwd 文件包含了系统上所有用户的基本信息。每一…...

[足式机器人]Part2 Dr. CAN学习笔记-自动控制原理Ch1-8Lag Compensator滞后补偿器

本文仅供学习使用 本文参考&#xff1a; B站&#xff1a;DR_CAN Dr. CAN学习笔记-自动控制原理Ch1-8Lag Compensator滞后补偿器 从稳态误差入手&#xff08;steady state Error&#xff09; 误差 Error &#xff1a; E ( s ) R ( s ) − X ( s ) R ( s ) − E ( s ) ⋅ K G …...

swift-碰到的问题

如何让工程不使用storyboard和scene 删除info.plist里面的Application Scene mainifest 删除SceneDelegate.swift 删除AppDelegate.swift里面的这两个方法 func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession…...

安全与认证Week4

目录 目录 Web Security (TLS/SSL) 各层安全协议 Transport Layer Security (TLS)传输层安全性(TLS) SSL和TLS的联系与区别 TLS connection&session 连接与会话 题目2答案点 TLS ArchitectureTLS架构&#xff08;5个协议&#xff09; 题目1答案点 Handshake Proto…...

Golang高质量编程与性能调优实战

1.1 简介 高质量:编写的代码能否达到正确可靠、简洁清晰的目标 各种边界条件是否考虑完备异常情况处理,稳定性保证易读易维护编程原则 简单性 消除多余的重复性,以简单清晰的逻辑编写代码不理解的代码无法修复改进可读性 代码是写给人看的,并不是机器编写可维护代码的第一…...

vite 如何打包 dist 文件到 zip 使用插件 vite-plugin-zip-pack,vue3 ts

vite 如何打包 dist 文件到 zip 使用插件 vite-plugin-zip-pack&#xff0c;vue3 ts 开发过程中一个经常做的事就是将 ./dist 文件夹打包成 zip 分发。 每次手动打包还是很费劲的&#xff0c; vite 同样也有能把 ./dist 文件夹打包成 .zip 的插件&#xff0c;当然这个打包的文…...

jdbc源码研究

JDBC介绍 JDBC&#xff08;Java Data Base Connectivity,java数据库连接&#xff09;是一种用于执行SQL语句的Java API&#xff0c;可以为多种关系数据库提供统一访问&#xff0c;它由一组用Java语言编写的类和接口组成。 开发者不必为每家数据通信协议的不同而疲于奔命&#…...

挠性及刚挠结合印制电路技术

1.1挠性印制电路板概述 20世纪70年代末期&#xff0c;以日本厂商为主导&#xff0c;逐渐将挠性印制电路板(flexible printedcircuit board&#xff0c;FPCB&#xff0c;简称为FPC)广泛应用于计算机、照相机、打印机、汽车音响、硬盘驱动器等电子信息产品中。20世纪90年代初期&…...

Python+OpenGL绘制3D模型(七)制作3dsmax导出插件

系列文章 一、逆向工程 Sketchup 逆向工程&#xff08;一&#xff09;破解.skp文件数据结构 Sketchup 逆向工程&#xff08;二&#xff09;分析三维模型数据结构 Sketchup 逆向工程&#xff08;三&#xff09;软件逆向工程从何处入手 Sketchup 逆向工程&#xff08;四&#xf…...

MediaPipeUnityPlugin Win10环境搭建(22年3月的记录,新版本已完全不同,这里只做记录)

https://github.com/homuler/MediaPipeUnityPlugin You cannot build libraries for Android with the following steps. 1、安装msys2配置系统环境变量Path添加 C:\msys64\usr\bin 执行 pacman -Su 执行 pacman -S git patch unzip 2、安装Python3.9.10 勾选系统环境变量 …...

Nginx - location块中的alias和try_files重定向

nginx.conf片段&#xff1a; location /logo/general/ {autoindex_localtime on;alias /opt/config/;try_files /logo/logo.png /www/html/logo.png 404;} 意为&#xff1a;访问/logo/general/地址时&#xff0c; 如&#xff1a;访问http://127.0.0.1/logo/general/logo.png…...

二刷Laravel 教程(用户模型)总结Ⅲ

一、数据库迁移 当我们运行迁移时&#xff0c;up 方法会被调用&#xff1b;&#xff08;创建表&#xff09; 当我们回滚迁移时&#xff0c;down 方法会被调用。&#xff08;删除表&#xff09; public function up() { //create 方法会接收两个参数&#xff1a;一个是数据…...

安装PyTorch及环境配置(应用于Python上的YOLO)

这个基本都是Bilibili网站里面叫“小手丫子”up的视频教程&#xff0c;此前自己需要装了好几次又卸载了好几次&#xff0c;现在根据视频教学整理出来自己所理解的文档。 注意事项 1.安装的pycharm版本和anaconda版本无要求。 2.运行pycharm尽量以管理员身份运行。 3.Cuda是独…...

【194】PostgreSQL 14.5 编写SQL从身份证号中查找性别,并且更新性别字段。

假设有一张用户表 t_user &#xff0c;该表设计如下&#xff1a; id: character varying 主键 name: character varying 姓名 idcard: character varying 身份证号 gender: smallint 性别&#xff0c;女是0&#xff0c;男是1根据身份证号查找所有未填写…...

微服务管家:NestJS 如何使用服务发现 Consul 实现高效的微服务节点管理

前言 在微服务架构中&#xff0c;服务发现是一项基础且关键的功能&#xff0c;它允许服务实例在网络中被动态发现。Consul 是一种服务网格解决方案&#xff0c;提供了服务发现、运行状况检查&#xff0c;过去和现代应用程序的连接等功能。 本教程将向您展示如何在 NestJS 框架…...

Baumer工业相机堡盟工业相机如何联合NEOAPI SDK和OpenCV实现相机图像转换为Mat图像格式(C++)

Baumer工业相机堡盟工业相机如何通过NEOAPI SDK实现相机掉线自动重连&#xff08;C&#xff09; Baumer工业相机Baumer工业相机的图像转换为OpenCV的Mat图像的技术背景在NEOAPI SDK里实现相机图像转换为Mat图像格式联合OpenCV实现相机图像转换为Mat图像格式测试演示图 工业相机…...

RobotStudio 仿真软件学习分享05——smart组件创建动态输送链、动态夹具与仿真运行

在工业机器人仿真工作站里&#xff0c;Smart 组件是实现无代码动态逻辑、自动输送、自动夹持、信号交互的核心工具。本次学习我们将从零搭建一套自动上料输送链 智能真空夹具 机器人码垛的完整仿真系统&#xff0c;把 “产品自动生成→输送→到位检测→机器人抓取→搬运码垛→…...

基于Cadence Virtuoso的gm/ID曲线仿真与参数扫描实战指南

1. 从零理解gm/ID设计方法学 在模拟电路设计领域&#xff0c;随着工艺节点不断缩小&#xff0c;我们这些工程师遇到了一个尴尬的现实&#xff1a;教科书里的那些经典公式越来越不灵了。记得我第一次用28nm工艺设计运放时&#xff0c;按照传统方法计算的增益和实测结果差了近40%…...

从设备树到驱动:在RK3566上点亮一个LED的完整实战(GPIO0_B4为例)

从设备树到驱动&#xff1a;在RK3566上点亮一个LED的完整实战&#xff08;GPIO0_B4为例&#xff09; 当你第一次拿到一块Rockchip RK3566开发板时&#xff0c;最令人兴奋的莫过于让硬件真正"活"起来。而点亮一个LED&#xff0c;就像嵌入式世界的"Hello World&q…...

Canvas动画实战:从入门到精通

Canvas动画实战&#xff1a;从入门到精通 前言 各位前端小伙伴&#xff0c;不知道你们有没有想过在浏览器中实现复杂的动画效果&#xff1f;Canvas可以让你实现各种炫酷的动画&#xff01; 我曾经开发过一个在线绘图应用&#xff0c;使用Canvas实现了流畅的画笔效果和动画回放功…...

终极指南:如何用MAA Assistant Arknights实现明日方舟全自动化

终极指南&#xff1a;如何用MAA Assistant Arknights实现明日方舟全自动化 【免费下载链接】MaaAssistantArknights 《明日方舟》小助手&#xff0c;全日常一键长草&#xff01;| A one-click tool for the daily tasks of Arknights, supporting all clients. 项目地址: htt…...

Visual C++运行库终极解决方案:一站式修复所有Windows程序依赖问题

Visual C运行库终极解决方案&#xff1a;一站式修复所有Windows程序依赖问题 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否经常遇到"缺少msvcp140.…...

该不该现在买房?AI浪潮下,你的房贷是资产还是负债?

该不该现在买房&#xff1f;AI浪潮下&#xff0c;你的房贷是资产还是负债&#xff1f; 开篇&#xff1a;一个普通家庭的决策困境 深夜&#xff0c;东莞某小区的灯光次第熄灭。你刚刚哄睡一岁半的孩子&#xff0c;打开手机看到甲骨文最新一轮裁员的新闻&#xff0c;又瞥了一眼房…...

RocketMQ 5.1.1 Topic管理:从创建到删除,一份完整的mqadmin命令行实战手册

RocketMQ 5.1.1 Topic全生命周期管理实战指南 接手一个新的RocketMQ集群时&#xff0c;Topic管理往往是日常运维中最频繁的操作之一。不同于简单的命令堆砌&#xff0c;本文将带您深入理解Topic从创建到销毁的完整生命周期&#xff0c;通过真实生产环境中的典型场景&#xff0c…...

Code-Act框架:让AI通过代码生成与执行实现智能体“动手”能力

1. 项目概述&#xff1a;Code-Act&#xff0c;一个让AI“动手”的智能体框架最近在AI智能体这个圈子里&#xff0c;一个叫“Code-Act”的项目热度挺高。它不是一个具体的应用&#xff0c;而是一个框架&#xff0c;一个旨在解决当前AI智能体“眼高手低”问题的底层工具。简单来说…...

【C语言之 CJson】从零到一:构建与解析JSON的实战指南

1. 为什么C语言需要处理JSON数据 在物联网设备和嵌入式系统开发中&#xff0c;JSON已经成为事实上的数据交换标准。我去年参与的一个智能家居项目就深有体会&#xff1a;设备配置、状态上报、控制指令全都采用JSON格式传输。用C语言处理这些数据时&#xff0c;手动拼接字符串不…...