MFC列表框示例
本文仅供学习交流,严禁用于商业用途,如本文涉及侵权请及时联系本人将于及时删除
目录
1.示例内容
2.程序步骤
3.运行结果
4.代码全文
1.示例内容
编写一个对话框应用程序CMFC_Li6_4_学生信息Dlg,对话框中有一个列表框,当用户单击列表框中的一个列表项(一位学生)时,在5个编辑框中分别显示这个学生的姓名、学号、性别、年龄及班级,外加一个下拉框用于选择显示学制。单击添加按钮时,“姓名”编辑框中的文本将被添加到列表框中(用于作为索引);选中列表框中某一列表项,单击删除按钮时,当前的列表项将被删除。
2.程序步骤
(1) 创建基于对话框的应用程序CMFC_Li6_4_学生信息Dlg,将对话框的Caption改为“学生信息”。
并布局对话框控件。
(2) 删除对话框模板中的静态文本及“确定”按钮,将“取消”按钮的Caption改为“退出”。添加如上图所示的控件,并利用ClassWizard类向导为有关控件添加关联成员变量,如下表所示。
(3)打开MFC_Li6_4_学生信息Dlg.h头文件,在对话框类CLCBoxDlg中定义一个结构体类型student,用于声明与列表项关联的数据项。
private:struct student{CString name;long number;CString sex;int age;CString classno;CString xuezhi;};
public:student stu[5];int i=0;//用于控制stu[]数组下标
(4) 利用ClassWizard类向导在对话框类MFC_Li6_4_学生信息Dlg中为“添加”与“删除”按钮添加消息BN_CLICKED的处理函数,并添加代码。单击“添加”按钮时,如果编辑的“姓名”是一个新项,则向列表框添加该项。单击“删除”按钮将删除列表框中当前的列表项。
void CMFC_Li6_4_学生信息Dlg::OnBnClickedAdd()
{// TODO: 在此添加控件通知处理程序代码UpdateData(true); //获得控件中的数据if (m_name.IsEmpty())//判断“姓名”是否为空{MessageBox(_T("学生姓名不能为空!"));return;}m_name.TrimLeft(); //去掉姓名左边的空格m_name.TrimRight(); //去掉姓名右边的空格m_class.TrimLeft();m_class.TrimRight();m_sex.TrimLeft();m_sex.TrimRight();if ((m_list.FindStringExact(-1, m_name)) != LB_ERR) //从头至尾找{MessageBox(_T("列表框中已有该项,不能再添加!"));return;}int nIndex = m_list.AddString(m_name); //向列表框添加学生姓名//student stu; //将学生数据项与新增的列表项关联起来stu[i].name = m_name;stu[i].number = m_number;stu[i].sex = m_sex;stu[i].age = m_age;stu[i].classno = m_class;stu[i].xuezhi = m_xuezhi;//m_list.SetItemDataPtr(nIndex, new student(stu)); //建立关联m_list.SetItemDataPtr(nIndex, &stu[i].name); //建立关联i++;if (i > 4){return;}
} void CMFC_Li6_4_学生信息Dlg::OnBnClickedDelete()
{// TODO: 在此添加控件通知处理程序代码int nIndex = m_list.GetCurSel(); //获得当前列表项的索引if (nIndex != LB_ERR){//释放关联数据所占的内存空间//delete(student*)m_list.GetItemDataPtr(nIndex);m_list.GetItemDataPtr(nIndex);m_list.DeleteString(nIndex); //删除列表框当前选项m_name = m_class = m_sex = m_xuezhi = "";//设置编辑框控件数据m_number = m_age = 0;UpdateData(false); //在编辑框中显示数据}elseMessageBox(_T("没有选择列表项或列表框操作失败!"));}
(5)利用ClassWizard类向导为列表框添加消息LBN_SELCHANGE的处理函数,并添加代码。当在列表框中选中某位学生,即当前列表框中选择项发生改变时,在编辑框中显示该学生信息的相关信息。
void CMFC_Li6_4_学生信息Dlg::OnLbnDblclkList()
{// TODO: 在此添加控件通知处理程序代码int nIndex = m_list.GetCurSel(); //获得当前列表项的索引if (nIndex != LB_ERR){//释放关联数据所占的内存空间//delete(student*)m_list.GetItemDataPtr(nIndex);//m_list.DeleteString(nIndex); //删除列表框当前选项//m_name = m_class = m_sex = "";//设置编辑框控件数据//m_number = m_age = 0;m_list.GetItemDataPtr(nIndex);m_name = stu[nIndex].name;m_number = stu[nIndex].number;m_sex = stu[nIndex].sex;m_age = stu[nIndex].age;m_class = stu[nIndex].classno;m_xuezhi = stu[nIndex].xuezhi;UpdateData(false); //在编辑框中显示数据}elseMessageBox(_T("没有选择列表项或列表框操作失败!"));
}
(6) 编译、链接并运行程序。
3.运行结果
//本案例有些许bug,目前定义存储结构体数量为5,编辑框中的基本信息显示到列表框中时,列表框中对应的详细信息会倒序
4.代码全文
// MFC_Li6_4_学生信息Dlg.h : 头文件
//#pragma once
#include "afxwin.h"// CMFC_Li6_4_学生信息Dlg 对话框
class CMFC_Li6_4_学生信息Dlg : public CDialogEx
{
// 构造
public:CMFC_Li6_4_学生信息Dlg(CWnd* pParent = NULL); // 标准构造函数// 对话框数据enum { IDD = IDD_MFC_LI6_4__DIALOG };protected:virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持// 实现
protected:HICON m_hIcon;// 生成的消息映射函数virtual BOOL OnInitDialog();afx_msg void OnSysCommand(UINT nID, LPARAM lParam);afx_msg void OnPaint();afx_msg HCURSOR OnQueryDragIcon();DECLARE_MESSAGE_MAP()
public:
// CListBox m_list;
// CString m_name;long m_number;CString m_sex;int m_age;CString m_class;
private:struct student{CString name;long number;CString sex;int age;CString classno;CString xuezhi;};public:afx_msg void OnBnClickedAdd();afx_msg void OnBnClickedDelete();CString m_name;CListBox m_list;afx_msg void OnLbnDblclkList();student stu[5];int i=0;CString m_xuezhi;
};
// MFC_Li6_4_学生信息Dlg.cpp : 实现文件
//#include "stdafx.h"
#include "MFC_Li6_4_学生信息.h"
#include "MFC_Li6_4_学生信息Dlg.h"
#include "afxdialogex.h"#ifdef _DEBUG
#define new DEBUG_NEW
#endif// 用于应用程序“关于”菜单项的 CAboutDlg 对话框class CAboutDlg : public CDialogEx
{
public:CAboutDlg();// 对话框数据enum { IDD = IDD_ABOUTBOX };protected:virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持// 实现
protected:DECLARE_MESSAGE_MAP()
};CAboutDlg::CAboutDlg() : CDialogEx(CAboutDlg::IDD)
{
}void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{CDialogEx::DoDataExchange(pDX);
}BEGIN_MESSAGE_MAP(CAboutDlg, CDialogEx)
END_MESSAGE_MAP()// CMFC_Li6_4_学生信息Dlg 对话框CMFC_Li6_4_学生信息Dlg::CMFC_Li6_4_学生信息Dlg(CWnd* pParent /*=NULL*/): CDialogEx(CMFC_Li6_4_学生信息Dlg::IDD, pParent)/*, m_name(_T(""))*/, m_number(0), m_sex(_T("")), m_age(0), m_class(_T("")), m_name(_T("")), m_xuezhi(_T(""))
{m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}void CMFC_Li6_4_学生信息Dlg::DoDataExchange(CDataExchange* pDX)
{CDialogEx::DoDataExchange(pDX);// DDX_Control(pDX, IDC_LIST, m_list);// DDX_Control(pDX, IDC_NAME, m_name);DDX_Text(pDX, IDC_NUMBER, m_number);DDX_Text(pDX, IDC_SEX, m_sex);DDX_Text(pDX, IDC_AGE, m_age);DDX_Text(pDX, IDC_CLASS, m_class);DDX_Text(pDX, IDC_NAME, m_name);DDX_Control(pDX, IDC_LIST, m_list);DDX_CBString(pDX, IDC_COMBO, m_xuezhi);
}BEGIN_MESSAGE_MAP(CMFC_Li6_4_学生信息Dlg, CDialogEx)ON_WM_SYSCOMMAND()ON_WM_PAINT()ON_WM_QUERYDRAGICON()ON_BN_CLICKED(IDC_ADD, &CMFC_Li6_4_学生信息Dlg::OnBnClickedAdd)ON_BN_CLICKED(IDC_DELETE, &CMFC_Li6_4_学生信息Dlg::OnBnClickedDelete)ON_LBN_DBLCLK(IDC_LIST, &CMFC_Li6_4_学生信息Dlg::OnLbnDblclkList)
END_MESSAGE_MAP()// CMFC_Li6_4_学生信息Dlg 消息处理程序BOOL CMFC_Li6_4_学生信息Dlg::OnInitDialog()
{CDialogEx::OnInitDialog();// 将“关于...”菜单项添加到系统菜单中。// IDM_ABOUTBOX 必须在系统命令范围内。ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);ASSERT(IDM_ABOUTBOX < 0xF000);CMenu* pSysMenu = GetSystemMenu(FALSE);if (pSysMenu != NULL){BOOL bNameValid;CString strAboutMenu;bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX);ASSERT(bNameValid);if (!strAboutMenu.IsEmpty()){pSysMenu->AppendMenu(MF_SEPARATOR);pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);}}// 设置此对话框的图标。 当应用程序主窗口不是对话框时,框架将自动// 执行此操作SetIcon(m_hIcon, TRUE); // 设置大图标SetIcon(m_hIcon, FALSE); // 设置小图标// TODO: 在此添加额外的初始化代码return TRUE; // 除非将焦点设置到控件,否则返回 TRUE
}void CMFC_Li6_4_学生信息Dlg::OnSysCommand(UINT nID, LPARAM lParam)
{if ((nID & 0xFFF0) == IDM_ABOUTBOX){CAboutDlg dlgAbout;dlgAbout.DoModal();}else{CDialogEx::OnSysCommand(nID, lParam);}
}// 如果向对话框添加最小化按钮,则需要下面的代码
// 来绘制该图标。 对于使用文档/视图模型的 MFC 应用程序,
// 这将由框架自动完成。void CMFC_Li6_4_学生信息Dlg::OnPaint()
{if (IsIconic()){CPaintDC dc(this); // 用于绘制的设备上下文SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);// 使图标在工作区矩形中居中int cxIcon = GetSystemMetrics(SM_CXICON);int cyIcon = GetSystemMetrics(SM_CYICON);CRect rect;GetClientRect(&rect);int x = (rect.Width() - cxIcon + 1) / 2;int y = (rect.Height() - cyIcon + 1) / 2;// 绘制图标dc.DrawIcon(x, y, m_hIcon);}else{CDialogEx::OnPaint();}
}//当用户拖动最小化窗口时系统调用此函数取得光标
//显示。
HCURSOR CMFC_Li6_4_学生信息Dlg::OnQueryDragIcon()
{return static_cast<HCURSOR>(m_hIcon);
}void CMFC_Li6_4_学生信息Dlg::OnBnClickedAdd()
{// TODO: 在此添加控件通知处理程序代码UpdateData(true); //获得控件中的数据if (m_name.IsEmpty())//判断“姓名”是否为空{MessageBox(_T("学生姓名不能为空!"));return;}m_name.TrimLeft(); //去掉姓名左边的空格m_name.TrimRight(); //去掉姓名右边的空格m_class.TrimLeft();m_class.TrimRight();m_sex.TrimLeft();m_sex.TrimRight();if ((m_list.FindStringExact(-1, m_name)) != LB_ERR) //从头至尾找{MessageBox(_T("列表框中已有该项,不能再添加!"));return;}int nIndex = m_list.AddString(m_name); //向列表框添加学生姓名//student stu; //将学生数据项与新增的列表项关联起来stu[i].name = m_name;stu[i].number = m_number;stu[i].sex = m_sex;stu[i].age = m_age;stu[i].classno = m_class;stu[i].xuezhi = m_xuezhi;//m_list.SetItemDataPtr(nIndex, new student(stu)); //建立关联m_list.SetItemDataPtr(nIndex, &stu[i].name); //建立关联i++;if (i > 4){return;}
} void CMFC_Li6_4_学生信息Dlg::OnBnClickedDelete()
{// TODO: 在此添加控件通知处理程序代码int nIndex = m_list.GetCurSel(); //获得当前列表项的索引if (nIndex != LB_ERR){//释放关联数据所占的内存空间//delete(student*)m_list.GetItemDataPtr(nIndex);m_list.GetItemDataPtr(nIndex);m_list.DeleteString(nIndex); //删除列表框当前选项m_name = m_class = m_sex = m_xuezhi = "";//设置编辑框控件数据m_number = m_age = 0;UpdateData(false); //在编辑框中显示数据}elseMessageBox(_T("没有选择列表项或列表框操作失败!"));}void CMFC_Li6_4_学生信息Dlg::OnLbnDblclkList()
{// TODO: 在此添加控件通知处理程序代码int nIndex = m_list.GetCurSel(); //获得当前列表项的索引if (nIndex != LB_ERR){//释放关联数据所占的内存空间//delete(student*)m_list.GetItemDataPtr(nIndex);//m_list.DeleteString(nIndex); //删除列表框当前选项//m_name = m_class = m_sex = "";//设置编辑框控件数据//m_number = m_age = 0;m_list.GetItemDataPtr(nIndex);m_name = stu[nIndex].name;m_number = stu[nIndex].number;m_sex = stu[nIndex].sex;m_age = stu[nIndex].age;m_class = stu[nIndex].classno;m_xuezhi = stu[nIndex].xuezhi;UpdateData(false); //在编辑框中显示数据}elseMessageBox(_T("没有选择列表项或列表框操作失败!"));
}
【免费】MFC编写一个对话框应用程序CMFC-Li6-4-学生信息Dlg,对话框中有一个列表框,当用户单击列表框中的一个列表项(一位学生资源-CSDN文库
相关文章:
![](https://i-blog.csdnimg.cn/direct/092a1094cdf74582a1ff1538d0419b3a.png)
MFC列表框示例
本文仅供学习交流,严禁用于商业用途,如本文涉及侵权请及时联系本人将于及时删除 目录 1.示例内容 2.程序步骤 3.运行结果 4.代码全文 1.示例内容 编写一个对话框应用程序CMFC_Li6_4_学生信息Dlg,对话框中有一个列表框,当用户…...
![](https://i-blog.csdnimg.cn/direct/87927dc17f4549a6abce47c6d781f8c9.png)
Android TabLayout的简单用法
TabLayout 注意这里添加tab,使用binding.tabLayout.newTab()进行创建 private fun initTabs() {val tab binding.tabLayout.newTab()tab.text "模板库"binding.tabLayout.addTab(tab)binding.tabLayout.addOnTabSelectedListener(object : TabLayout.On…...
![](https://www.ngui.cc/images/no-images.jpg)
基于vite + pnpm monorepo 实现一个UI组件库
基于vite pnpm monorepo的vue组件库 仓库地址 思路 好多文章都是直接咔咔咔的上代码。跟着做也没问题,但总觉得少了些什么。下次做的时候还要找文章参考。。 需求有三个模块,那么就需要三个包。使用monorepo进行分包管理。 a. 组件库 b. 组件库文档…...
![](https://i-blog.csdnimg.cn/direct/8cf343007e79415fadad8c749accf9ae.png#pic_center)
FDM3D打印系列——Luck13关节可动模型打印和各种材料的尝试
luck13可动关节模型FDM3D打印制作过程 大家好,我是阿赵。 最近我沉迷于打印一个叫做Luck13的关节超可动人偶。 首先说明一下,这个模型是分为了外甲和骨骼两个部分的。 为什么我会打印了这么多个呢? 一、第一次尝试——PLATPU 刚开始…...
![](https://www.ngui.cc/images/no-images.jpg)
windows10 获取磁盘类型
powershell Get-PhysicalDisk | Select FriendlyName, MediaType FriendlyName MediaType ------------ --------- NVMe PC SN740 NVMe WD 256GB SSD WDC WD10EZEX-75WN4A1 HDD 适用场景 SSD: 适合需要快速访问速度和较高响…...
![](https://www.ngui.cc/images/no-images.jpg)
数据库之运算符
目录 一、算数运算符 二、比较运算符 1.常用比较运算符 2.实现特殊功能的比较运算符 三、逻辑运算符 1.逻辑与运算符(&&或者AND) 2.逻辑或运算符(||或者OR) 3.逻辑非运算符(!或者NOT&#…...
![](https://www.ngui.cc/images/no-images.jpg)
【自动化机器学习AutoML】AutoML工具和平台的使用
自动化机器学习AutoML:AutoML工具和平台的使用 目录 引言什么是AutoMLAutoML的优势常见的AutoML工具和平台 Google Cloud AutoMLH2O.aiAuto-sklearnTPOTMLBox AutoML的基本使用 Google Cloud AutoML使用示例Auto-sklearn使用示例 AutoML的应用场景结论 引言 自动…...
![](https://img-blog.csdnimg.cn/d3c154d4274d4b31842e0a432ebbb880.jpg)
【每日一练】python求最后一个单词的长度
""" 求某变量中最后一个单词的长度 例如s"Good morning, champ! Youre going to rock this day" 分析思路: 遇到字符串问题,经常和列表结合使用来解决, 可以先用列表的.split()分割方法进行单词分割, 再…...
![](https://i-blog.csdnimg.cn/direct/10ffec3578e14c2f8006232bdfb9b78f.png#pic_center)
[红明谷CTF 2021]write_shell 1
目录 代码审计check()$_GET["action"] ?? "" 解题 代码审计 <?php error_reporting(0); highlight_file(__FILE__); function check($input){if(preg_match("/| |_|php|;|~|\\^|\\|eval|{|}/i",$input)){// if(preg_match("/| |_||p…...
![](https://www.ngui.cc/images/no-images.jpg)
【Go - sync.once】
sync.Once 是 Go 语言标准库中的一个结构体,它的作用是确保某个操作在全局范围内只被执行一次。这对于实现单例模式或需要一次性初始化资源的场景非常有用。 典型用法 sync.Once 提供了一个方法 Do(f func()),该方法接收一个没有参数和返回值的函数 f …...
![](https://img-blog.csdnimg.cn/direct/2d69bd2b7b0042fe9df3761ce18a2d79.png)
Spark RPC框架详解
文章目录 前言Spark RPC模型概述RpcEndpointRpcEndpointRefRpcEnv 基于Netty的RPC实现NettyRpcEndpointRefNettyRpcEnv消息的发送消息的接收RpcEndpointRef的构造方式直接通过RpcEndpoint构造RpcEndpointRef通过消息发送RpcEndpointRef Endpoint的注册Dispatcher消息的投递消息…...
![](https://i-blog.csdnimg.cn/direct/5105b27d5577435c99fa62dec54cc901.png)
win10安装ElasticSearch7.x和分词插件
说明: 以下内容整理自网络,格式调整优化,更易阅读,希望能对需要的人有所帮助。 一 安装 Java环境 ElasticSearch使用Java开发的,依赖Java环境,安装 ElasticSearch 7.x 之前,需要先安装jdk-8。…...
![](https://www.ngui.cc/images/no-images.jpg)
Linux中,MySQL的用户管理
MySQL库中的表及其作用 user表 User表是MySQL中最重要的一个权限表,记录允许连接到服务器的帐号信息,里面的权限是全局级的。 db表和host表 db表和host表是MySQL数据中非常重要的权限表。db表中存储了用户对某个数据库的操作权限,决定用户…...
![](https://www.ngui.cc/images/no-images.jpg)
个人电脑网络安全 之 防浏览器和端口溢出攻击 和 权限对系统的重要性
防浏览器和端口溢出攻击 该如何防 很多人都不明白 我相信很多人只知道杀毒软件 却不知道网络防火墙 防火墙分两种 : 1、 病毒防火墙 也就是我们说的杀毒软件 2、 网络防火墙 这是用来防软件恶意通信的 使用防火墙 有两种 1、 半开式规则…...
![](https://www.ngui.cc/images/no-images.jpg)
美食聚焦 -- 仿大众点评项目技术难点总结
1 实现点赞功能显示哪些用户点赞过并安装时间顺序排序 使用sort_set 进行存储,把博客id作为key,用户id作为value,时间戳作为score 但存储成功之后还是没有成功按照时间顺序排名,因为sql语句,比如最后in(5…...
![](https://i-blog.csdnimg.cn/direct/f64ed5d14f9a4f6ea86cf2708175df05.png)
拓扑图:揭示复杂系统背后的结构与逻辑
在现代软件开发和运维中,图形化的表示方式越来越重要。拓扑图,作为一种关键的可视化工具,不仅能够帮助我们理解系统的结构和组件间的关系,还能提升系统的可维护性和可扩展性。 什么是拓扑图? 拓扑图是一种展示系统或网络中各个节点(如服务器、交换机、数据库等)及其连…...
![](https://img-blog.csdnimg.cn/direct/418b4b1527ce43a8b8d63ef9c89fc17f.jpeg)
Java面试八股之什么是spring boot starter
什么是spring boot starter Spring Boot Starter是Spring Boot项目中的一个重要概念。它是一种依赖管理机制,用于简化Maven或Gradle配置文件中的依赖项声明。Spring Boot Starter提供了一组预定义的依赖关系,这些依赖关系被封装在一个单一的包中&#x…...
![](https://www.ngui.cc/images/no-images.jpg)
探究项目未能获得ASPICE 1、2级能力的原因及改进策略
项目整体未能获得ASPICE 1、2级能力的原因可能涉及多个方面,以下是基于参考文章中的信息和可能的情境进行的分析: 1.过程成熟度不足:ASPICE(Automotive Software Process Improvement and Capability Determination)是…...
![](https://www.ngui.cc/images/no-images.jpg)
WHAT - 不同 HTTP Methods 使用场景、使用方法和可能遇到的问题
目录 前言基本介绍具体介绍前置知识:幂等和非幂等幂等操作非幂等操作幂等性和非幂等性的应用场景总结 1. GET2. POST3. PUT4. PATCH1. 确保操作是幂等的2. 使用版本控制或条件更新3. 全量更新部分属性4. 使用特定操作指令5. 幂等标识符示例代码总结 5. DELETE6. HEA…...
![](https://i-blog.csdnimg.cn/direct/15365bcd47044d3ebc7c0ed2951cf148.png#pic_center)
Pytorch使用教学4-张量的索引
1 张量的符号索引 张量也是有序序列,我们可以根据每个元素在系统内的顺序位置,来找出特定的元素,也就是索引。 1.1 一维张量的索引 一维张量由零维张量构成 一维张量索引与Python中的索引一样是是从左到右,从0开始的ÿ…...
![](https://i-blog.csdnimg.cn/direct/d0247593b5bb40fa876af823a029cf41.png)
【Git多人协作开发】同一分支下的多人协作开发模式
目录 0.前言场景 1.开发者1☞完成准备工作&协作开发 1.1创建dev分支开发 1.2拉取远程dev分支至本地 1.3查看分支情况和分支联系情况 1.4创建本地dev分支且与远程dev分支建立联系 1.5在本地dev分支上开发file.txt 1.6推送push至远程仓库 2.开发者2☞完成准备工作&…...
![](https://i-blog.csdnimg.cn/direct/ca19a18057354a4a82ae6cd969f7edb2.png)
Vue使用FullCalendar实现日历/周历/月历
Vue使用FullCalendar实现日历/周历/月历 需求背景:项目上遇到新需求,要求实现工单以日/周/月历形式展示。而且要求不同工单根据状态显示不同颜色,一个工单内部,需要以不同颜色显示三个阶段。 效果图 日历 周历 月历 安装插件…...
![](https://i-blog.csdnimg.cn/direct/87f2e8edcadc4ae48e38609be02654fa.png)
社交圈子聊天交友系统搭建社交app开发:陌生交友发布动态圈子单聊打招呼群聊app介绍
系统概述 社交圈子部天交友系统是一个集成即时通讯、社区互动、用户管理等功能的在线社交平台。它支持用户创建个人资料,加入兴趣围子,通过文字、图片、语音、视频等多种方式进行交流,满足用户在不同场景下的社交需求 核心功能 -,…...
![](https://i-blog.csdnimg.cn/direct/785463547a4a4ea997faea00987bc60b.png)
【微信小程序实战教程】之微信小程序原生开发详解
微信小程序原生开发详解 微信小程序的更新迭代非常频繁,几乎每个月都会有新版本发布,这就会让初学者感觉到学习的压力和难度。其实,我们小程序的每次版本迭代都是在现有小程序架构基础之上进行更新的,如果想要学好小程序开发技术&…...
![](https://www.ngui.cc/images/no-images.jpg)
PHP身份证实名认证接口集成守护电商购物
在这个万物互联的世界里,网购已成为日常生活中不可或缺的一部分。然而,随着线上交易的增加,如何保护消费者和商家免受欺诈,确保每一笔交易的安全,成了亟待解决的难题。这时,身份证实名认证接口应运而生&…...
![](https://www.ngui.cc/images/no-images.jpg)
为什么有了MAC还需要IP?
目录 MAC地址(Media Access Control Address)IP地址(Internet Protocol Address)为什么需要两者? IP地址和MAC地址在网络通信中扮演着不同的角色,它们各自有独特的功能和用途。下面是它们的主要区别和为什么…...
![](https://www.ngui.cc/images/no-images.jpg)
SpringBoot中如何使用RabbitMq
一,RabbitMQ简介和基本概念 RabbitMQ 是一个开源的消息中间件,基于 AMQP(高级消息队列协议)实现。 它由 Erlang 语言开发,并且支持多种编程语言,包括 Java、Python、Ruby、PHP 和 C# 等, 下载…...
![](https://www.ngui.cc/images/no-images.jpg)
LangChain自定义Embedding封装 之 ERNIE Bot
LangChain自定义Embedding封装 之 ERNIE Bot 百度飞浆平台的 ERNIE Bot 导入下面方法 和 环境 ,即可验证 embedding ERNIE_Bot_embedding() class ERNIE_Bot_embedding(BaseModel, Embeddings):client: Anyroot_validator()def validate_environment(cls, value…...
![](https://i-blog.csdnimg.cn/direct/1728bd01836348edae08474e78221453.png)
Git 安装教程
1、登录git 官方网站:https://git-scm.com/ 点击左边的 Downloads 或者 右边标识的下载标志,它根据电脑操作系统自动匹配版本 Downloads for Windows 2、以 windows 为例下载对应版本 网络有时可能不大好,阿里镜像下载超快。 下载好以后&a…...
![](https://www.ngui.cc/images/no-images.jpg)
Lua 类管理器
Lua 类管理器 -- ***** Class Manager 类管理*****‘local ClassManager {}local this ClassManagerfunction ClassManager.Class(className, ...)print(ClassManager::Class)--print(className)-- 构建类local cls {__className className}--print(cls)-- 父类集合local …...
![](https://i-blog.csdnimg.cn/direct/a4a61b63a83843d88ba27d6146c3a18a.png)
实现领域驱动设计(DDD)系列详解:领域模型的持久化
领域驱动设计主要通过限界上下文应对复杂度,它是绑定业务架构、应用架构和数据架构的关键架构单元。设计由领域而非数据驱动,且为了保证定义了领域模型的应用架构和定义了数据模型的数据架构的变化方向相同,就应该在领域建模阶段率先定义领域…...
![](https://i-blog.csdnimg.cn/direct/1108367f9634406d884e02bab20aca29.png)
配置sublime的中的C++编译器(.sublime-build),实现C++20
GCC 4.8: 支持 C11 (部分) GCC 4.9: 支持 C11 和 C14 (部分) GCC 5: 完全支持 C14 GCC 6: 支持 C14 和 C17 (部分) GCC 7: 支持 C17 (大部分) GCC 8: 完全支持 C17,部分支持 C20 GCC 9: 支持更多的 C20 特性 GCC 10: 支持大部分 C20 特性 GCC 11: 更全面地支持 C20 …...
![](https://www.ngui.cc/images/no-images.jpg)
Android14 - 前台Service、图片选择器 、OpenJDK 17、其他适配
前台服务 1. 指定前台服务类型 以 Android 14(API 级别 34)或更高版本为目标平台的应用,需要为应用中的每项前台服务指定服务类型,因为系统需要特定类型的前台服务满足特定用例。具体介绍如下: 在Android 10 在 <service> 元素内引入了 android:foregroundServiceT…...
![](https://i-blog.csdnimg.cn/direct/53c1fe1dd95e4ec498e21290772e3d6e.png)
数据恢复教程:如何从硬盘、SD存储卡、数码相机中恢复误删除数据。
您正在摆弄 Android 设备。突然,您意外删除了一张或多张图片。不用担心,您总能找到一款价格实惠的数据恢复应用。这款先进的软件可帮助 Android 用户从硬盘、安全数字 (SD) 或存储卡以及数码相机中恢复已删除的数据。 Android 上数据被删除的主要原因 在…...
![](https://i-blog.csdnimg.cn/direct/720e2de0efad451bb0ba6fbdee5d6f52.png)
谷粒商城实战笔记-47-商品服务-API-三级分类-网关统一配置跨域
文章目录 一,跨域问题1,跨域问题产生的原因2,预检请求3,跨域解决方案3.1 CORS (Cross-Origin Resource Sharing)后端配置示例(Spring Boot) 3.2 JSONP (JSON with Padding)3.3 代理服务器Nginx代理配置示例…...
![](https://i-blog.csdnimg.cn/direct/19dd6bb127344181877048d9eec04b8c.png#pic_center)
stm32平台为例的软件模拟时间,代替RTC调试
stm32平台为例的软件模拟时间,代替RTC调试 我们在开发项目的时候,如果用到RTC,如果真正等待RTC到达指定的时间,那调试时间就太长了。 比如每隔半个小时,存储一次数据,如果要观察10次存储的效果࿰…...
![](https://www.ngui.cc/images/no-images.jpg)
《设计模式之美》读书笔记2
从Linux学习应对大型复杂项目的方法: 1、封装与抽象:封装了不同类型设备的访问细节,抽象为统一的文件访问方式,更高层的代码就能基于统一的访问方式,来访问底层不同类型的设备。这样做的好处是,隔离底层设备…...
![](https://www.ngui.cc/images/no-images.jpg)
C++ STL set_difference 用法
一:功能 给定两个集合A,B;计算集合的差集,即计算出那些只包含在A中而不包含在B中的元素。 二:用法 #include <vector> #include <algorithm> #include <iostream>int main() {std::vector<int&…...
![](https://i-blog.csdnimg.cn/direct/bda0771edcaa44f7b22af1cf6108595e.png)
【基础算法总结】优先级队列
优先级队列 1.最后一块石头的重量2.数据流中的第 K 大元素4.前K个高频单词4.数据流的中位数 点赞👍👍收藏🌟🌟关注💖💖 你的支持是对我最大的鼓励,我们一起努力吧!😃😃 1…...
![](https://img-blog.csdnimg.cn/2a624e9bb1b34332b734628d74db5fd2.jpg)
python-绝对值排序(赛氪OJ)
[题目描述] 输入 n 个整数,按照绝对值从大到小排序后输出。保证所有整数的绝对值不同。输入格式: 输入数据有多组,每组占一行,每行的第一个数字为 n ,接着是 n 个整数, n0 表示输入数据的结束,不做处理。输…...
![](https://i-blog.csdnimg.cn/direct/d6f741bb7af14b67bdee58fe9f1be1a3.jpeg#pic_center)
成功者的几个好习惯,你具备了几个
每个人都想成为自己领域的佼佼者,然而,成功并非偶然,它往往与一系列良好的习惯紧密相连。这些习惯如同灯塔,指引着成功者在波涛汹涌的大海中稳健前行。 一、设定明确目标 没有明确的目标,就如同航海没有指南针&#…...
![](https://i-blog.csdnimg.cn/direct/81d72ce0e6484531be88b4cfeffffa72.jpeg#pic_center)
centos中zabbix安装、卸载及遇到的问题
目录 Zabbix简介Zabbix5.0和Zabbix7.0的区别监控能力方面模板和 API 方面性能、速度方面 centos7安装Zabbix(5.0)安装zabbix遇到的问题卸载Zabbix Zabbix简介 Zabbix 是一个基于 WEB 界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。zabbix 能监视各种网络参…...
![](https://www.ngui.cc/images/no-images.jpg)
php编译安装
一、基础环境准备 # php使用www用户 useradd -s /sbin/nologin -M www二、下载php包 # 下载地址 https://www.php.net/downloads wget https://www.php.net/distributions/php-8.3.9.tar.gz三、配置编译安装 编译安装之前需要处理必要的依赖,在编译配置安装&…...
![](https://www.ngui.cc/images/no-images.jpg)
[K8S] K8S资源控制器Controller Manager(4)
文章目录 1. 常见的Pod控制器及含义2. Replication Controller控制器2.1 部署ReplicaSet 3. Deployment3.1部署Deployment3.2 运行Deployment3.3 镜像更新方式3.4 Deployment扩容3.5 滚动更新3.6 金丝雀发布(灰度发布)3.7 Deployment版本回退3.8 Deployment 更新策略 4. Daemon…...
![](https://i-blog.csdnimg.cn/direct/2ba498cd7a3546639797f708cd0822cb.png)
C#,.NET常见算法
1.递归算法 1.1.C#递归算法计算阶乘的方法 using System;namespace C_Sharp_Example {public class Program{/// <summary>/// 阶乘:一个正整数的阶乘Factorial是所有小于以及等于该数的正整数的积,0的阶乘是1,n的阶乘是n࿰…...
![](https://i-blog.csdnimg.cn/direct/6128e26e87364745852fd5c9f767af5c.png)
KubeSphere介绍及一键安装k8s
KubeSphere介绍 官网地址:https://kubesphere.io/zh/ KubeSphere愿景是打造一个以 Kubernetes 为内核的云原生分布式操作系统,它的架构可以非常方便地使第三方应用与云原生生态组件进行即插即用(plug-and-play)的集成࿰…...
![](https://www.ngui.cc/images/no-images.jpg)
Spring 系列
SpringBoot 实体类(Entity)层 实体类(Entity)通常属于模型层(Model Layer)或领域层(Domain Layer)。它们代表应用程序中的核心业务数据结构,与数据库表结构紧密对应。在…...
![](https://i-blog.csdnimg.cn/direct/8017896854dc4ff1814bfdb6a6d9be5b.png)
基于opencv[python]的人脸检测
1 图片爬虫 这里的代码转载自:http://t.csdnimg.cn/T4R4F # 获取图片数据 import os.path import fake_useragent import requests from lxml import etree# UA伪装 head {"User-Agent": fake_useragent.UserAgent().random}pic_name 0 def request_pic…...
![](https://i-blog.csdnimg.cn/direct/116ca45415114a8299799bc5303efcd0.png)
配置SSH公钥互信
目录 第一台主机:servera(172.25.250.101) 第一步:查看 . ssh目录下面是否为空 第二步:输入命令ssh-keygen 第三步: 再看查看一下. ssh目录 第四步: 输入命令 ssh-copy-id root172.25.250…...
![](https://www.ngui.cc/images/no-images.jpg)
WEB渗透Web突破篇-SQL注入(MSSQL)
注释符 -- 注释 /* 注释 */用户 SELECT CURRENT_USER SELECT user_name(); SELECT system_user; SELECT user;版本 SELECT version主机名 SELECT HOST_NAME() SELECT hostname;列数据库 SELECT name FROM master..sysdatabases; SELECT DB_NAME(N); — for N 0, 1, 2, ……...