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

MFC 列表控件修改实例(源码下载)

1、本程序基于前期我的博客文章《MFC下拉菜单打钩图标存取实例(源码下载)》
2、程序功能选中列表控件某一项,修改这一项的按钮由禁止变为可用,双击这个按钮弹出对话框可对这一项的记录数据进行修改,点击确定保存修改数据。
3、首先在主界面添加一个修改参数按钮。在这里插入图片描述
4、在myDlg.h 文件
class CMyDlg : public CDialog中添加代码

public:
void UpdateButton(void);
protected:
virtual LRESULT DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam);

5、选中列表控件,右击选择“事件…”,在弹出的事件句柄中选择“LVN_ITEMCHANGED”,如下图所示。
在这里插入图片描述

void CMyDlg::OnItemchangedList1(NMHDR* pNMHDR, LRESULT* pResult) 
{NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;POSITION pos = m_ctrlType.GetFirstSelectedItemPosition();if(pos != NULL){int nItem = m_ctrlType.GetNextSelectedItem(pos);if(m_nTypeIndex != nItem){m_nTypeIndex = nItem;}}elsem_nTypeIndex = -1;	*pResult = 0;
}

6、在myDlg.cpp 文件中添加代码

LRESULT CMyDlg::DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam) 
{// TODO: Add your specialized code here and/or call the base classstatic int nTypeIndex = -2;if(::IsWindow(m_ctrlType.m_hWnd)){if(m_nTypeIndex != nTypeIndex){nTypeIndex = m_nTypeIndex;UpdateButton();}}return CDialog::DefWindowProc(message, wParam, lParam);
}void CMyDlg::UpdateButton()
{GetDlgItem(IDC_BUTTON3)->EnableWindow(m_nTypeIndex > -1);
}

7、在myDlg.cpp 文件中参数按钮中添加代码

void CMyDlg::OnButton3() 
{CTypeParaDlg dlg;dlg.m_pPara = &theApp.m_allPara[m_nTypeIndex];if(dlg.DoModal() == IDOK){LV_ITEM item;item.mask = LVIF_TEXT|LVIF_IMAGE;item.iItem = m_nTypeIndex;item.iSubItem = 0;item.pszText = theApp.m_allPara[m_nTypeIndex].m_strTypeName;item.iImage = 0;m_ctrlType.SetItem(&item);item.iSubItem = 1;item.pszText = theApp.m_allPara[m_nTypeIndex].m_strBrand;m_ctrlType.SetItem(&item);item.iSubItem = 2;item.pszText = theApp.m_allPara[m_nTypeIndex].m_strRemark;m_ctrlType.SetItem(&item);}	
}

运行程序
在这里插入图片描述
源码下载

http://www.lryc.cn/news/344148.html

相关文章:

  • QT设计模式:模板模式
  • 8.k8s中网络资源service
  • 51单片机keil编程中遇到的问题(持续更新)
  • C++类和对象详解(一)
  • SCI论文检索报告长什么样?怎么出具?一文了解!
  • UE4_Water插件_Buoyancy组件使用
  • OceanBase学习1:分布式数据库与集中式数据库的差异
  • 计算机网络技术主要学什么内容,有哪些课程
  • Mac下安装ffmpeg
  • 自制AI:Park_01修改bug
  • 解救应用启动危机:Spring Boot的FailureAnalyzer机制
  • win11个性化锁屏界面怎么关闭?
  • 白酒:白酒香型与品质消费的关系及影响
  • 智能BI(后端)-- 系统优化(安全性,数据存储,限流)
  • 探索数字社交的奇迹:解读Facebook的革命性影响
  • FileCodeBox-Lite:轻量级文件分享解决方案
  • 【ARM】ARM寄存器和异常处理
  • 数仓建模【埋点设计与管理】
  • Spring Clound介绍
  • Redhat Linux忘记密码解决方案
  • 对于子数组问题的动态规划
  • Instal IIS on Windows Server 2022 Datacenter
  • 飞天使-k8s知识点30-kubernetes安装1.28.0版本-使用containerd方式
  • Oracle 误操作insert delete update 数据回滚
  • Linux系统(CentOS)下安装配置 Nginx 超详细图文教程
  • 追求完美用户体验,从变量名设计的细节抓起
  • matlab实现K均值聚类
  • 详解BOM编程
  • 情感分类学习笔记(1)
  • EtherCAT运动控制器Delta机械手应用