惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

W
WeLiveSecurity
The GitHub Blog
The GitHub Blog
Engineering at Meta
Engineering at Meta
Microsoft Azure Blog
Microsoft Azure Blog
The Register - Security
The Register - Security
Stack Overflow Blog
Stack Overflow Blog
博客园 - 三生石上(FineUI控件)
T
Threat Research - Cisco Blogs
S
SegmentFault 最新的问题
V2EX - 技术
V2EX - 技术
Hacker News: Ask HN
Hacker News: Ask HN
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
P
Proofpoint News Feed
J
Java Code Geeks
Microsoft Security Blog
Microsoft Security Blog
M
MIT News - Artificial intelligence
AI
AI
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
P
Proofpoint News Feed
Hacker News - Newest:
Hacker News - Newest: "LLM"
B
Blog
N
News and Events Feed by Topic
N
News | PayPal Newsroom
Google DeepMind News
Google DeepMind News
酷 壳 – CoolShell
酷 壳 – CoolShell
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
WordPress大学
WordPress大学
C
Cybersecurity and Infrastructure Security Agency CISA
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
博客园 - 【当耐特】
U
Unit 42
腾讯CDC
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
The Cloudflare Blog
H
Help Net Security
Recent Announcements
Recent Announcements
P
Privacy & Cybersecurity Law Blog
IT之家
IT之家
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Security Archives - TechRepublic
Security Archives - TechRepublic
L
LINUX DO - 热门话题
Martin Fowler
Martin Fowler
MongoDB | Blog
MongoDB | Blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
H
Heimdal Security Blog
博客园 - 聂微东
S
Securelist
大猫的无限游戏
大猫的无限游戏
Cloudbric
Cloudbric
Cisco Talos Blog
Cisco Talos Blog

博客园 - 流云

编译时找不到xxx.pch [ZT] SQL Server 中四种匹配符的含义[ZT] TAB ORDER按回车键下个控件自动获得焦点 VC获取系统时间、程序运行时间 - 流云 - 博客园 VC常用数据类型使用转换详解 [转] - 流云 - 博客园 VC遍历文件夹下所有文件和文件夹 - 流云 - 博客园 对话框与其控件的颜色 获得指针(文档、视图、框架) 让对话框中的菜单变灰(根据可用性而显示) 获取 本机 SQL SERVER 服务器名 - 流云 用VC++修改注册表----让我们踏出第一步(适合初学者) VC+ADO 连接ACCESS和SQL SERVER的方法 动态链接库DLL的编写和调用(四则表达式计算) SQL SERVER 数据库备份还原 文本读写 CStdioFile流文件 文件读写 CFile 字体对话框FontDialog 颜色对话框ColorDialog VC获取系统时间、程序运行时间
列表控件ListCtrl的使用
流云 · 2005-05-17 · via 博客园 - 流云

1.新建对话框工程Test,在对话框上放上ListCtrl控件IDC_LIST1,连接变量名m_list,增加代码:

BOOL CTestDlg::OnInitDialog()
{
//
        m_list.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);
    m_list.SetBkColor(RGB(
240,255,240));
    m_list.SetTextColor(RGB(
0,0,255));
//---------------------------------------------
       
//插入列字段
    m_list.InsertColumn(0,"学号",LVCFMT_LEFT,100);
    m_list.InsertColumn(
1,"姓名",LVCFMT_LEFT,100);
        
//插入行项目
    m_list.InsertItem(0,"20010540519");
    m_list.InsertItem(
1,"20010540520");
    m_list.InsertItem(
2,"20010540521");
        
//插入行内容
    m_list.SetItemText(0,1,"宫奇");
    m_list.SetItemText(
1,1,"杨建敏");
    m_list.SetItemText(
2,1,"张威");return TRUE;  
}

2.新建对话框IDD_EDIT, 用来做修改、删除、添加记录等,添加2个编辑框,分别连接变量m_StudentID和m_StudentName,为它创建新的类CEditDlg,基类是CDialog;
3.为了使用上面的CEditDlg类  ,在TestDlg.cpp里的 #endif 之后加入#include "EditDlg.h";然后在主对话框上加入4个按钮修改(IDC_CHANGE)、删除(IDC_DELETE)、添加(IDC_ADD)、保存(IDC_SAVE),然后添加他们的响应函数如下:

void CTestDlg::OnChange() 
{    
//得到选择项的索引值
    POSITION pos=m_list.GetFirstSelectedItemPosition();
    m_nIndex
=m_list.GetNextSelectedItem(pos);if(m_nIndex==-1)
    {
        MessageBox(
"请选择一项再修改!","提示",MB_ICONINFORMATION);
        
return;
    }

    CEditDlg edlg;
    edlg.m_StudentID

=m_list.GetItemText(m_nIndex,0);
    edlg.m_StudentName
=m_list.GetItemText(m_nIndex,1);
    
if(edlg.DoModal()==IDOK)
    {
        m_list.SetItemText(m_nIndex,
0,edlg.m_StudentID);
        m_list.SetItemText(m_nIndex,
1,edlg.m_StudentName);
    }
}
void CTestDlg::OnDelete() 
{    
    POSITION pos
=m_list.GetFirstSelectedItemPosition();
    m_nIndex
=m_list.GetNextSelectedItem(pos);if(m_nIndex==-1)
    {
        MessageBox(
"请选择一项!","提示",MB_ICONINFORMATION);
        
return;
    }
    m_list.DeleteItem(m_nIndex);
//下面这2句的作用是刷新当前所指记录位置,以便连续删除
//    UINT flag = LVIS_SELECTED|LVIS_FOCUSED;
//    m_list.SetItemState(m_nIndex-1, flag, flag);    
}void CTestDlg::OnAdd() 
{
    CEditDlg edlg;
    
if(edlg.DoModal()==IDOK)
    {
        
if(edlg.m_StudentID=="")            
            
return;        
        m_nIndex
=m_list.GetItemCount();
        m_list.InsertItem(m_nIndex,edlg.m_StudentID);    
        m_list.SetItemText(m_nIndex,
1,edlg.m_StudentName);        
    }
}
void CTestDlg::OnSave() 
{    
    CStdioFile sf;
    
if(sf.Open("资料.txt",CFile::modeCreate | CFile::modeWrite))
    {
        CString strOut;
        strOut
="学号\t\t姓名\r\n";
        sf.WriteString(strOut);
        
for(int i=0;i<m_list.GetItemCount();i++
        {
            strOut
=m_list.GetItemText(i,0+ "\t"+m_list.GetItemText(i,1)+"\r\n";
            sf.WriteString(strOut);
        }    
        sf.Close();
        MessageBox(
"保存成功!","提示",MB_ICONINFORMATION);
    }
    
else
        MessageBox(
"保存失败!","提示",MB_ICONINFORMATION);  
}


好了,现在就编译运行吧~你看到的结果应该是(现在上传不了图,暂时,以后会贴上来的)