CListCtrl 使用演示的例子
来源:互联网 发布:js制作表格 编辑:程序博客网 时间:2024/05/18 00:57
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); }
转帖:http://www.4oa.com/Article/html/6/32/474/2005/16653.html
- CListCtrl 使用演示的例子
- CListCtrl 使用演示的例子
- CLISTCTRL的使用例子
- 在存储过程中演示使用case的例子(一)
- 在存储过程中演示使用case的例子(二)
- Android 例子: Dialog的使用--- AlertDialog功能演示一
- 一个小例子演示下epoll和管道的使用
- 通俗易懂的小例子来演示如何使用NestedScroll
- 例1.3 演示使用new和delete的例子
- CListCtrl的简单使用
- CListCtrl的小使用
- CListCtrl组件的使用
- CListCtrl 使用的小结
- CListCtrl的使用
- CListCtrl的简单使用
- CListCtrl的使用
- VC++CListCtrl的使用
- ClistCtrl::SortItems()的使用
- 新浪Oauth2.0认证有变化..
- trac custom install
- IE下WEB开发辅助工具
- Android应用开发——Drawable
- 软件版本号如何定义
- CListCtrl 使用演示的例子
- [白痴教程]win7 下修改文件后缀名
- 彪悍的gdb
- C# dictioinary
- poj 1703(并查集 另一种解法)
- 使用swfobject.js调用flash,使flash背景透明的方法
- sersync2 完全安装配置说明(一) ----基本功能使用
- Implement your own short url
- 为SM30 视图添加按钮