Loading [MathJax]/jax/output/CommonHTML/config.js
部署DeepSeek模型,进群交流最in玩法!
立即加群
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >MFC/C++学习系列之简答记录13——memset和List control

MFC/C++学习系列之简答记录13——memset和List control

原创
作者头像
升级打怪的菜鸟
发布于 2024-11-30 04:41:27
发布于 2024-11-30 04:41:27
17802
代码可运行
举报
文章被收录于专栏:MFCMFC
运行总次数:2
代码可运行

好事发生

文章推荐:设计模式精讲:掌握单例模式的实现与优化

文章链接:https://cloud.tencent.com/developer/article/2472404

文章简介:本文介绍在C++中使用设计模式可能会使用的函数,也详细介绍单例模式的实现与优化,对设计模式感兴趣,并想应用于实际项目的小伙伴可以学习一下!


前言

今天记录一下memset和List control 的使用吧!


memset

memset通常在初始化变量或清空内存区域的时候使用,可以对变量设定特定的值。

使用:

  • 头文件: C++:#include <cstring> C:#include <string.h>
  • 初始化:int arr[20]; memset(arr, 0, sizeof(arr)); // 将数组初始化为0
  • 清空内存:
代码语言:cpp
代码运行次数:0
运行
AI代码解释
复制
int myObject;
memset(&myObject, 0, sizeof(int)); // 清空MyClass对象的内存

清空内存需要注意,只能清空基本类型和POD类型,不能对复杂对象来初始化。对话框数据、控件数据都可以使用来进行初始化。

List Control

列表控件在之前介绍了MSFlexGrid表格的使用,但是MSFlexGrid控件在一些高版本的软件平台中找不到控件,可以尝试用List Control来进行数据输出显示。在添加控件后,需要记得添加控制变量!

代码

代码语言:cpp
代码运行次数:0
运行
AI代码解释
复制
	m_list1.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);
	
	m_list1.InsertColumn(0, _T("姓名"), LVCFMT_LEFT, 100, 0);
	m_list1.InsertColumn(1, _T("年龄"),  LVCFMT_CENTER, 80, 1);
	m_list1.InsertColumn(2, _T("性别"), LVCFMT_LEFT, 100, 2);

	m_list1.InsertItem(0, _T("小无"));
	m_list1.SetItemText(0, 1, _T("12"));
	m_list1.SetItemText(0, 2, _T("男"));
	m_list1.InsertItem(1, _T("小理"));
	m_list1.SetItemText(1, 1, _T("11"));
	m_list1.SetItemText(1, 2, _T("男"));
	m_list1.InsertItem(2, _T("小取"));
	m_list1.SetItemText(2, 1, _T("13"));
	m_list1.SetItemText(2, 2, _T("男"));
	m_list1.InsertItem(3, _T("小闹"));
	m_list1.SetItemText(3, 1, _T("12"));
	m_list1.SetItemText(3, 2, _T("男"));
  • SetExtendedStyle:设置了列表控件的扩展样式。 LVS_EX_FULLROWSELECT 表示当用户点击列表中的任何部分时,整行都会被选中。LVS_EX_GRIDLINES 表示列表控件会显示网格线。
  • InsertColumn:插入列。可以设置文本对齐方式、列宽、列索引。
  • InsertItem:列表控件插入了一个项目,可以设置项目文本。
  • SetItemText:指定列表控件某位置进行文本设置。注意在list control使用中,如果出现不是表格的形式,而是一片空白。需要设置View。

上面的视图选择的是ICON,对应的结果如右图。下面将视图的选择改为Report,结果和我们预期的一致。


总结

本文主要介绍了memset的使用及使用的注意情况,同时介绍了List control 的使用!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【MFC】MFC基础篇(1)
CFrameWnd: 框架窗口,负责创建应用主窗口,含标题栏,菜单栏,工具栏,状态栏等 。
半生瓜的blog
2023/05/13
1.8K0
【MFC】MFC基础篇(1)
CListCtrl实现tooltip信息提示
EnableToolTips(TRUE); m_tooltip.Create(this); m_tooltip.SetMaxTipWidth(500); m_tooltip.Activate(TRUE);
全栈程序员站长
2022/09/09
1.3K0
CListCtrl
建立变量m_listCtrl: 选中控件ctrl+鼠标左键双击 添加控件风格: DWORD exstyle = m_ListCtrl.GetExtendedStyle(); m_ListCtrl.SetExtendedStyle(exstyle | LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | WS_EX_STATICEDGE ); m_ListCtrl.ModifyStyle(0,LVS_REPORT|LVS_SHOWSELALWAYS|LVS_SORTASCENDING); 插入列: m_ListCtrl.InsertColumn(0,_T(“文件名”),LVCFMT_LEFT,60,0); int nItemIndex =m_ListCtrl.InsertItem(j,sServerTmp);//主项目 m_ListCtrl.SetItemText(nItemIndex,nCol+1,sTmp);//次 cstrItemB = m_ListCtrl.GetItemText(行, 列);//获取
全栈程序员站长
2022/09/09
6880
也谈VC中ModifyStyle&ModifyStyleEx无法改变控件的Style)
大家好,又见面了,我是你们的朋友全栈君。一个View中用到了一个CListCtrl,在OnInitialUpdate函数里面他调用了m_listCtrl.ModifyStyleEx(0, LVS_EX_FULLROWSELECT);但是结果是并没有改变View中这个ListCtrl的效果。
全栈程序员站长
2022/09/09
5700
ClistCtrl用法及总结(由怎样隐藏ListCtrl列表头的排序小三角形这个bug学习到的知识)
1 怎样隐藏ListCtrl列表头的排序小三角形 在创建控件是加入|LVS_NOSORTHEADER风格即可。 一下是用法总结: 本文根据本人在项目中的应用,来谈谈CListCtrl的部分用法及技巧。当初学习时,查了很多资料,零零碎碎的作了些记录,现在主要是来做个总结,方便以后查阅。主要包括以下十三点内容:基本操作、获取选中行的行号、复选框操作、动态设置选中行的字体颜色、设置选中行的背景颜色、禁止拖动表头、让第一列居中显示、设置行高与字体、虚拟列表技术、点击表头时进行归类、向上与向下移动、动态调整大小问题、
用户1198337
2018/01/19
3.1K0
ClistCtrl用法及总结(由怎样隐藏ListCtrl列表头的排序小三角形这个bug学习到的知识)
MFC应用程序——标签控件_IP控件_时间控件_List Control控件_Tree Control控件_命令按钮_列表框_组合框_图片_滚动控件「建议收藏」
【Tab Control 标签控件】 标签控件也比较常见。它可以把多个页面集成到一个窗口中, 每个页面对应一个标签,用户点击某个标签时,它对应的页 面就会显示。 使用标签控件我们可以同时加载多个有关联的页面,用 户只需点击标签即可实现页面切换,方便灵活的进行操作。 每个标签除了可以显示标签文本,还可以显示图标。 标签控件相当于是一个页面的容器,可以容纳多个对话 框,而且一般也只容纳对话框,所以我们不能直接在标签控 件上添加其他控件,必须先将其他控件放到对话框中,再将 对话框添加到标签控件中。最终我们点击标签切换页面时, 切换的不是控件的组合,而是对话框。
全栈程序员站长
2022/09/23
2.7K0
MFC应用程序——标签控件_IP控件_时间控件_List Control控件_Tree Control控件_命令按钮_列表框_组合框_图片_滚动控件「建议收藏」
CListCtrl使用「建议收藏」
列表控件可以看作是功能增强的ListBox,它提供了四种风格,而且可以同时显示一列的多中属性值。 MFC中使用CListCtrl类来封装列表控件的各种操作。 通过调用 BOOL Create( DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID )创建一个窗口,
全栈程序员站长
2022/09/09
1.4K0
CListCtrl控件使用方法总结
今天第一次用CListCtrl控件,遇到不少问题,查了许多资料,现将用到的一些东西总结如下: 以下未经说明,listctrl默认view 风格为report 相关类及处理函数 MFC:CListCtrl类 SDK:以 “ListView_”开头的一些宏。如 ListView_InsertColumn ---- 1. CListCtrl 风格       LVS_ICON: 为每个item显示大图标       LVS_SMALLICON: 为每个item显示小图标       LVS_LIST:
_gongluck
2018/03/12
2K0
CListCtrl详细使用方法
以下未经说明,listctrl默认view 风格为report 相关类及处理函数 MFC:CListCtrl类 SDK:以 “ListView_”开头的一些宏。如 ListView_InsertColumn
全栈程序员站长
2022/09/09
1.2K0
【大三操作系统实验】 请求页式管理中的置换算法
(1)FIFO算法总是选择在内存驻留时间最长的一页将其淘汰。FIFO算法认为调入内存的页不再被可能性要比其他页大,因而选择最先调入内存的页换出。
用户7886150
2020/12/29
5620
C++学习——memset函数详解
memset是计算机中C/C++语言初始化函数。作用是将某一块内存中的内容全部设置为指定的值, 这个函数通常为新申请的内存做初始化工作。
全栈程序员站长
2022/09/23
5.8K0
memset的含义及作用
struct sample_struct { char csName[16]; int iSeq; int iType; };
包子388321
2020/06/17
2K0
滴水逆向初级-C++(三)
1、什么是封装: 将函数定义到结构体内部,就是封装。 2、什么是类: 带有函数的结构体,称为类。 3、什么是成员函数: 结构体里面的函数,称为成员函数。
zhang_derek
2021/04/13
6540
MFC/C++学习系列之简单记录11——树控件的使用
文章推荐:一文带你了解机器学习的四大框架PyTorch、TensorFlow、Keras、Scikit-learn
升级打怪的菜鸟
2024/11/25
2970
【C++】memset 函数详解与应用
在接触C++之前,我对编程的了解仅限于一些基础的概念,例如变量、循环和条件语句。C++的学习从这些最基本的部分开始,帮助我夯实了编程的基础。C++的语法严格,这在一开始可能会让人感到不适应,但也正是因为这种严格性,它迫使我养成了良好的编程习惯。例如,必须明确变量的类型,让我更注重程序的逻辑性和可读性。
CSDN-Z
2025/01/03
1.3K0
【C++】memset 函数详解与应用
【C语言】memset()函数(内存块初始化函数)
我们先来看一下cplusplus.com - The C++ Resources Network网站上memset()函数的基本信息:
修修修也
2024/04/01
1.8K0
【C语言】memset()函数(内存块初始化函数)
谈一谈,c/c++中的memset()函数
memset()是计算机中C/C++语言初始化函数,在头文件#include<string.h>中定义。作用是将某一块内存中的内容全部设置为指定的值,这个函数通常为新申请的内存做初始化工作。其函数原型如下:
狼啸风云
2023/10/23
1.8K0
C语言 数组初始化的三种常用方法({0}, memset, for循环赋值)以及原理「建议收藏」
分别执行上面三种方法,统计下平均时间可以得出: for循环浪费的时间最多,{0} 与memset 耗时差不多。
全栈程序员站长
2022/09/09
10.4K0
C语言 数组初始化的三种常用方法({0}, memset, for循环赋值)以及原理「建议收藏」
C++ STL学习之【list的模拟实现】
STL 中的 list 是一个双向带头循环链表,作为链表的终极形态,各项操作性能都很优秀,尤其是 list 中迭代器的设计更是让人拍案叫绝,如此优秀的容器究竟是如何实现的?本文将带你共同揭晓
北 海
2023/07/01
1770
C++ STL学习之【list的模拟实现】
OpenCV 2.2版本号以上显示图片到 MFC 的 Picture Control 控件中
OpenCV 2.2 以及后面的版本号取消掉了 CvvImage.h 和CvvImage.cpp 两个文件,直接导致了苦逼的程序猿无法调用里面的显示函数来将图片显示到 MFC 的 Picture Control 控件中。为此,网上非常多人表示仅仅要将那两个文件人为的提取出来然后放到project里面就解决这个问题了,也提供了两个文件的下载,可是这麻烦不说。还会导致一些奇奇怪怪的报错(至少本人是这种,非常崩溃!)。所以在了解了一些gdi画图之后结合网上的代码写了例如以下的函数,仅仅需调用就能够将OpenCV的图片显示在上面了(仅仅支持三通道不支持单通道),初步測试效率跟原来两个文件差点儿相同。假设有大神请帮我完好这份代码!
全栈程序员站长
2022/07/10
6010
推荐阅读
相关推荐
【MFC】MFC基础篇(1)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验