当前位置:网站首页>[MFC development (17)] advanced list control list control
[MFC development (17)] advanced list control list control
2022-07-01 08:41:00 【Demo. demo】
1. Introduce
ListCtrl Advanced list control is also a common control in our usual programming process , It generally involves report presentation 、 Record and display , Need to be ListCtrl Advanced list control . for example : Task manager , File list , And so on ListCtrl Advanced list control .


Introduction to common attributes :
Edit Lables Whether the node can be edited

View Used to set the style of advanced list controls , There are four styles

Icon: For each item Show large icons

Small Icon: For each item Show small icons

List: Displays a list of... With small icons item

Report: Show item Detailed information

2. Common methods
(1) First, add variables to the control

(2) Set extended style
// Get an extended style
DWORD style = m_listctrl.GetExtendedStyle();
// Add the style of gridline and the style selected in the whole row, and add a selection box in front
style |= LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT|LVS_EX_CHECKBOXES;
// Set extended style
m_listctrl.SetExtendedStyle(style);(3) Add columns
// Add columns ,0--- Serial number , The second parameter shows the content ,
// The third parameter shows the alignment , The fourth parameter is the width displayed in the header
m_listctrl.InsertColumn(0, _T(" First column "), LVCFMT_CENTER, 50);
m_listctrl.InsertColumn(1, _T(" Second column "), LVCFMT_CENTER, 50);
m_listctrl.InsertColumn(2, _T(" The third column "), LVCFMT_CENTER, 50);(4) Add lines and line contents
// Insert line contents
// Add to the end
m_listctrl.InsertItem(m_listctrl.GetItemCount(),_T(" first line "));
// You can set the contents of a row and a column , The parameters are row , Column , Text content
m_listctrl.SetItemText(0,0, _T("111"));
m_listctrl.SetItemText(0,1, _T("222"));
m_listctrl.SetItemText(0,2, _T("333"));
(5) Set to select a row and uncheck
Choose
void CMFC_Test1Dlg::OnBnClickedButton21()
{
// TODO: Add control notification handler code here
// Set highlight
m_listctrl.SetFocus();
// Set to select a row
m_listctrl.SetItemState(1, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED);
}Uncheck the selected
void CMFC_Test1Dlg::OnBnClickedButton24()
{
// TODO: Add control notification handler code here
m_listctrl.SetItemState(1,0, LVIS_SELECTED | LVIS_FOCUSED);
}
(6) Traverse every line in the control
void CMFC_Test1Dlg::OnBnClickedButton25()
{
// TODO: Add control notification handler code here
// First, get how many rows
int ncount = m_listctrl.GetItemCount();
// Go through every line
for (int i = 0; i < ncount; i++){
// Single acquisition i+1 First column of row 、 Second column 、 The third column
CString str1 = m_listctrl.GetItemText(i, 0);
CString str2 = m_listctrl.GetItemText(i, 1);
CString str3 = m_listctrl.GetItemText(i, 2);
}
}(7) Get the selected row
// Get the currently selected row
// First get the position
POSITION pos = m_listctrl.GetFirstSelectedItemPosition();
while (pos){
// Get the index of the selected row according to the position
int row_idx = m_listctrl.GetNextSelectedItem(pos);
CString str_idx;
str_idx.Format(_T("%d"), str_idx);
MessageBox(str_idx);
}(8) Get the row selected in the multiple check box
void CMFC_Test1Dlg::OnBnClickedButton26()
{
// TODO: Add control notification handler code here
// First, get how many rows
int ncount = m_listctrl.GetItemCount();
// Go through every line
for (int i = 0; i < ncount; i++){
BOOL bcheck = m_listctrl.GetCheck(i);
if (bcheck){
CString check_idx;
check_idx.Format(_T(" The first %d Line is checked "), i);
MessageBox(check_idx);
}
}
}
(9) Delete row
void CMFC_Test1Dlg::OnBnClickedButton27()
{
// TODO: Add control notification handler code here
// Delete a line
m_listctrl.DeleteItem(0);
// Delete all rows
m_listctrl.DeleteAllItems();
}Note that after deleting a row , The index of all remaining rows will change , For example, delete 0 That's ok , Then delete 1 The line has changed. 0 That's ok
(10) Edit the specified line text

It should be noted that you should make it editable , Need to set the control property clock Edit Labels by True
First, add two events , Start and end editing


void CMFC_Test1Dlg::OnLvnBeginlabeleditList2(NMHDR *pNMHDR, LRESULT *pResult)
{
NMLVDISPINFO *pDispInfo = reinterpret_cast<NMLVDISPINFO*>(pNMHDR);
// TODO: Add control notification handler code here
*pResult = 0;
}
void CMFC_Test1Dlg::OnLvnEndlabeleditList2(NMHDR *pNMHDR, LRESULT *pResult)
{
NMLVDISPINFO *pDispInfo = reinterpret_cast<NMLVDISPINFO*>(pNMHDR);
// TODO: Add control notification handler code here
// The three parameters are rows in turn , Column , Input content
m_listctrl.SetItemText(pDispInfo->item.iItem, pDispInfo->item.iSubItem, pDispInfo->item.pszText);
*pResult = 0;
}Note that you can only edit ( The index for 0 Of ) The first 1 Column text , Other columns cannot be edited .
边栏推荐
- DataBinding源码分析
- 5mo3 UHI HII HII 17mn4 19Mn6 executive standard
- NIO-零拷贝
- Foundation: 2 The essence of image
- yolov5训练可视化指标的含义
- AES简单介绍
- 3、Modbus通讯协议详解
- Only in China! Alicloud container service enters the Forrester leader quadrant
- Maneuvering target tracking -- current statistical model (CS model) extended Kalman filter / unscented Kalman filter matlab implementation
- 2022 ordinary scaffolder (special type of construction work) examination question bank and the latest analysis of ordinary scaffolder (special type of construction work)
猜你喜欢

AES简单介绍

What is 1cr0.5mo (H) material? 1cr0.5mo (H) tensile yield strength

内存大小端

【C】 Summary of wrong questions in winter vacation

Field agricultural irrigation system

機動目標跟踪——當前統計模型(CS模型)擴展卡爾曼濾波/無迹卡爾曼濾波 matlab實現

电视机尺寸与观看距离

Properties of 15MnNiNbDR low temperature vessel steel, Wugang 15MnNiDR and 15MnNiNbDR steel plates

嵌入式工程师面试题3-硬件
![[detailed explanation of Huawei machine test] judgment string subsequence [2022 Q1 Q2 | 200 points]](/img/0f/972cde8c749e7b53159c9d9975c9f5.png)
[detailed explanation of Huawei machine test] judgment string subsequence [2022 Q1 Q2 | 200 points]
随机推荐
Gateway-88
leetcode T31:下一排列
嵌入式工程师常见面试题2-MCU_STM32
Pipeline detection of UAV Based on gazebo
基于Gazebo的无人机管道检测
深度学习训练样本扩增同时修改标签名称
2022 examination summary of quality controller civil engineering direction post skills (quality controller) and reexamination examination of quality controller civil engineering direction post skills
如何招到适合自己店铺的淘宝主播
Glitch Free时钟切换技术
MATLAB小技巧(16)矩阵特征向量特征值求解一致性验证--层次分析
Computer tips
C basic knowledge review (Part 4 of 4)
SPL installation and basic use (II)
毕业论文中word的使用1-代码域标公式
Advanced C language pointer (Part 2)
Public network cluster intercom +gps visual tracking | help the logistics industry with intelligent management and scheduling
Nacos - 配置管理
个人装修笔记
避免按钮重复点击的小工具bimianchongfu.queren()
Leetcode t29: divide two numbers