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

推荐订阅源

Simon Willison's Weblog
Simon Willison's Weblog
P
Privacy International News Feed
www.infosecurity-magazine.com
www.infosecurity-magazine.com
T
Troy Hunt's Blog
Hacker News - Newest:
Hacker News - Newest: "LLM"
Attack and Defense Labs
Attack and Defense Labs
S
Secure Thoughts
V2EX - 技术
V2EX - 技术
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
O
OpenAI News
Cloudbric
Cloudbric
Google Online Security Blog
Google Online Security Blog
Schneier on Security
Schneier on Security
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Help Net Security
Help Net Security
Cyberwarzone
Cyberwarzone
G
GRAHAM CLULEY
L
Lohrmann on Cybersecurity
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Spread Privacy
Spread Privacy
NISL@THU
NISL@THU
N
News and Events Feed by Topic
T
Tenable Blog
S
Security @ Cisco Blogs
N
News and Events Feed by Topic
The Hacker News
The Hacker News
C
CXSECURITY Database RSS Feed - CXSecurity.com
宝玉的分享
宝玉的分享
月光博客
月光博客
酷 壳 – CoolShell
酷 壳 – CoolShell
美团技术团队
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Google DeepMind News
Google DeepMind News
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
T
Tailwind CSS Blog
V
Visual Studio Blog
P
Proofpoint News Feed
Webroot Blog
Webroot Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
博客园 - 三生石上(FineUI控件)
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Jina AI
Jina AI
雷峰网
雷峰网
T
The Blog of Author Tim Ferriss
Hugging Face - Blog
Hugging Face - Blog
腾讯CDC
L
LangChain Blog
The Register - Security
The Register - Security
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 聂微东

博客园 - 流云

编译时找不到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);  
}


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