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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

CListCtrl 使用演示的例子

發布時間:2025/3/15 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CListCtrl 使用演示的例子 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

程序代碼如下:

BOOL CLCDemoDlg::OnInitDialog()
{
CDialog::OnInitDialog();

// Add "About..." menu item to system menu.

// IDM_ABOUTBOX must be in the system command range.
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);

CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
CString strAboutMenu;
strAboutMenu.LoadString(IDS_ABOUTBOX);
if (!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}

// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog

SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon

m_imagelist.Create(16,16,TRUE,2,2);
m_imagelist.Add(AfxGetApp()->LoadIcon(IDI_ICON2));
m_list.SetImageList(&m_imagelist,LVSIL_SMALL);

m_font.CreateFont(16, 0,0,0,FW_NORMAL, 0,0,0,
DEFAULT_CHARSET, OUT_CHARACTER_PRECIS, CLIP_CHARACTER_PRECIS,
DEFAULT_QUALITY, DEFAULT_PITCH | FF_DONTCARE, "Arial");
m_list.SetFont(&m_font);


/*-----------------------------------------------------------*/
m_list.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);
m_list.SetBkColor(RGB(247,247,255));
m_list.SetTextColor(RGB(0,0,255));
m_list.SetTextBkColor(RGB(247,247,255));
m_list.InsertColumn(0, "學號", LVCFMT_LEFT, 110);
m_list.InsertColumn(1, "姓名", LVCFMT_LEFT, 130);
m_list.InsertColumn(2, "成績", LVCFMT_LEFT, 47);

m_list.InsertItem(0,"2002112105");
m_list.SetItemText(0,1,"程紅秀");
m_list.SetItemText(0,2,"96");

m_list.InsertItem(1,"2002112126");
m_list.SetItemText(1,1,"符中輝");
m_list.SetItemText(1,2,"85");

m_list.InsertItem(2,"2002112125");
m_list.SetItemText(2,1,"王斌年");
m_list.SetItemText(2,2,"95");

m_list.InsertItem(3,"2002112103");
m_list.SetItemText(3,1,"袁浩");
m_list.SetItemText(3,2,"92");

return TRUE; // return TRUE unless you set the focus to a control
}

void CLCDemoDlg::OnClickList(NMHDR* pNMHDR, LRESULT* pResult)
{
POSITION pos = m_list.GetFirstSelectedItemPosition();
m_nIndex = m_list.GetNextSelectedItem(pos); // 得到項目索引

*pResult = 0;
}

void CLCDemoDlg::OnDblclkList(NMHDR* pNMHDR, LRESULT* pResult)
{
POSITION pos = m_list.GetFirstSelectedItemPosition();
m_nIndex = m_list.GetNextSelectedItem(pos); // 得到項目索引

CEditDlg ed;
ed.m_strNo=m_list.GetItemText(m_nIndex,0);
ed.m_strName=m_list.GetItemText(m_nIndex,1);
ed.m_strScore=m_list.GetItemText(m_nIndex,2);

if(ed.DoModal()==IDOK)
{
m_list.SetItemText(m_nIndex,0,ed.m_strNo);
m_list.SetItemText(m_nIndex,1,ed.m_strName);
m_list.SetItemText(m_nIndex,2,ed.m_strScore);
}

*pResult = 0;
}


void CLCDemoDlg::OnButtonUp()
{
m_list.SetFocus();

if (m_nIndex == -1) //如果沒有選擇就返回
{
MessageBox("請選擇一項再上移!","提示",MB_ICONINFORMATION);
return;
}

if (m_nIndex == 0) // 判斷所選項是否位于行首
{
MessageBox("已經位于第一行!","提示",MB_ICONINFORMATION);
return;
}

// 提取所選列表項各列類容
CString str1, str2, str3;
str1 = m_list.GetItemText(m_nIndex, 0);
str2 = m_list.GetItemText(m_nIndex, 1);
str3 = m_list.GetItemText(m_nIndex, 2);

// 刪除所選列表項
m_list.DeleteItem(m_nIndex);

// 在m_nIndex-1位置處插入上面所刪列表項的各列類容
m_list.InsertItem(m_nIndex-1, str1);
m_list.SetItemText(m_nIndex-1, 1, str2);
m_list.SetItemText(m_nIndex-1, 2, str3);
m_nIndex--;

// 使得m_nIndex-1位置處項目高亮顯示并獲得焦點
UINT flag = LVIS_SELECTED|LVIS_FOCUSED;
m_list.SetItemState(m_nIndex, flag, flag);
}


void CLCDemoDlg::OnButtonDown()
{
m_list.SetFocus();

if (m_nIndex == -1) //如果沒有選擇就返回
{
MessageBox("請選擇一項再下移!","提示",MB_ICONINFORMATION);
return;
}

if (m_nIndex == m_list.GetItemCount()-1) // 判斷所選項是否位于行尾
{
MessageBox("已經位于最末行!","提示",MB_ICONINFORMATION);
return;
}

CString str1, str2, str3;
str1 = m_list.GetItemText(m_nIndex, 0);
str2 = m_list.GetItemText(m_nIndex, 1);
str3 = m_list.GetItemText(m_nIndex, 2);

m_list.DeleteItem(m_nIndex);

// 在m_nIndex+1位置處插入上面所刪列表項的各列類容
m_list.InsertItem(m_nIndex+1, str1);
m_list.SetItemText(m_nIndex+1, 1, str2);
m_list.SetItemText(m_nIndex+1, 2, str3);
m_nIndex++;

// 使得m_nIndex+1位置處項目高亮顯示并獲得焦點
UINT flag = LVIS_SELECTED|LVIS_FOCUSED;
m_list.SetItemState(m_nIndex, flag, flag);
}


void CLCDemoDlg::OnEdit()
{
POSITION pos = m_list.GetFirstSelectedItemPosition();
m_nIndex = m_list.GetNextSelectedItem(pos); // 得到項目索引

if(m_nIndex==-1)
{
MessageBox("請選擇一項在修改!","提示",MB_ICONINFORMATION);
return;
}


CEditDlg ed;
ed.m_strNo=m_list.GetItemText(m_nIndex,0);
ed.m_strName=m_list.GetItemText(m_nIndex,1);
ed.m_strScore=m_list.GetItemText(m_nIndex,2);

if(ed.DoModal()==IDOK)
{
m_list.SetItemText(m_nIndex,0,ed.m_strNo);
m_list.SetItemText(m_nIndex,1,ed.m_strName);
m_list.SetItemText(m_nIndex,2,ed.m_strScore);
}
}

void CLCDemoDlg::OnAbout()
{
CAboutDlg dlg;
dlg.DoModal();
}

void CLCDemoDlg::OnExit()
{
PostMessage(WM_CLOSE,0,0);
}

void CLCDemoDlg::OnRclickList(NMHDR* pNMHDR, LRESULT* pResult)
{
CPoint pt;
::GetCursorPos(&pt);

CMenu menu;
menu.LoadMenu(IDR_MENU1);
CMenu* pMenu=menu.GetSubMenu(0);
pMenu->TrackPopupMenu(TPM_RIGHTBUTTON,pt.x,pt.y,this,NULL);

*pResult = 0;
}

void CLCDemoDlg::OnAdd()
{
CEditDlg ed;
if(ed.DoModal()==IDOK)
{
int nn=m_list.InsertItem(m_list.GetItemCount(),ed.m_strNo);
m_list.SetItemText(nn,1,ed.m_strName);
m_list.SetItemText(nn,2,ed.m_strScore);
}
}

void CLCDemoDlg::OnDel()
{
POSITION pos = m_list.GetFirstSelectedItemPosition();
m_nIndex = m_list.GetNextSelectedItem(pos); // 得到項目索引

if(m_nIndex==-1)
{
MessageBox("請選擇一項在刪除!","提示",MB_ICONINFORMATION);
return;
}

m_list.DeleteItem(m_nIndex);

UINT flag = LVIS_SELECTED|LVIS_FOCUSED;
m_list.SetItemState(m_nIndex-1, flag, flag);

}

void CLCDemoDlg::OnSave()
{
CStdioFile sf;
if(sf.Open("資料.txt",CFile::modeCreate | CFile::modeWrite))
{
CString strOut;
strOut="/r/n學號/t/t姓名/t/t成績/r/n";
sf.WriteString(strOut);

for(int i=0;i {
strOut=m_list.GetItemText(i,0) + "/t"+m_list.GetItemText(i,1)+"/t "+m_list.GetItemText(i,2) +"/r/n";
sf.WriteString(strOut);
}
sf.Close();
MessageBox("保存成功!","提示",MB_ICONINFORMATION);
}

else
MessageBox("保存失敗!","提示",MB_ICONINFORMATION);
 

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的CListCtrl 使用演示的例子的全部內容,希望文章能夠幫你解決所遇到的問題。

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