日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

列表控件ListCtrl的使用

發布時間:2025/4/5 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 列表控件ListCtrl的使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
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);??
}

好了,現在就編譯運行吧~你看到的結果應該是(現在上傳不了圖,暫時,以后會貼上來的)

轉載于:https://www.cnblogs.com/yjm0105/archive/2005/05/17/157327.html

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的列表控件ListCtrl的使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。