在MFC(Microsoft Foundation Classes)中,List Control控件(即CListCtrl)是一个常用的控件,用于显示一个列表视图,其中包括列和行。默认情况下,CListCtrl控件只允许用户选择单行。但是,通过一些设置,我们可以实现多选行的功能。以下是实现这一功能的步骤和代码示例: 1. 了解MFC List Control控件的基本功能和用法 CListCtrl控...
1voidCGlassDetectDlg::OnBnClickedButton14()2{3//TODO: Add your control notification handler code here4567CString str;8POSITION pos=m_List.GetFirstSelectedItemPosition();//pos选中的首行位置9if(pos==NULL)10AfxMessageBox("no item were selected!");11else12{13while(pos)//如果你选择多行14{15in...
int n = dataListControl.GetItemCount();//获取list里面有多少行 dataListControl.InsertItem(n, dlg.dataType);//插入行 dataListControl.SetItemText(n, 1, dlg.dataName);//设置数据 } //获取选中的行 int r=dataListControl.GetSelectionMark(); if (dataListControl.GetSelectedCount()!=0) dataListCo...
设置list control 行选中 设置行选中还需要把把list control 的Always show selection属性修改为 True,默认情况下False。 代码语言:javascript 复制 m_list.SetFocus();// 获取焦点在列表上面// 设置第i行为选中的状态m_list.SetItemState(i,LVNI_FOCUSED|LVIS_SELECTED,LVNI_FOCUSED|LVIS_SELECTED); 取消当前选中的...
List_control初始化代码如下: // TODO: 在此添加额外的初始化代码 CRect rect; // 获取编程语言列表视图控件的位置和大小 m_List.GetClientRect(&rect); // 为列表视图控件添加全行选中和栅格风格 m_List.SetExtendedStyle(m_List.GetExtendedStyle() | LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES); ...
MFC ListControl 获取当前显示的行号需要一点技巧,因为直接调用的GetCurSel()函数只能得到选中的位置。首先,你需要获取滚动条的垂直位置,这可以通过调用GetDlgItem(IDC_LIST1)->GetScrollPos(SB_VERT)来完成。接下来,你需要知道列表框中所有的条目数量,通过这个信息,你可以计算出当前显示的行号位置。不过...
前面一节中,讲了图片控件Picture Control,本节为大家详解列表视图控件List Control的使用。 列表视图控件简介 列表视图控件List Control同样比较常见,它能够把任何字符串内容以列表的方式显示出来,这种显示方式的特点是整洁、直观,在实际应用中能为用户带来方便。
假设列表控件对象为m_ListCtrl;POSITION pos=m_ListCtrl.GetFirstSelectedItemPosition()for(POSITION posTemp=pos;posTemp!=NULL;){ int ItemIndex=GetNextSelectedItem(posTemp);} 如果你选择了4项,则这个循环会进行4次,每一次就可以得到一个选择项的对应的索引,保存到ItemIndex中。
在mfc使用List Control控件的大部分时间需要有整行选中的功能,这个时候可以通过设置其风格来实现。代码如下: mydetector.SetExtendedStyle( LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES );//mydetector为List Control控件所绑定的变量对象,在设置风格之前,记得将控件的属性选择为report ...
7. 得到listctrl中所有选中行的序号 方法一: CString str; for(int i=0; i<m_list.GetItemCount(); i++) { if( m_list.GetItemState(i, LVIS_SELECTED) == LVIS_SELECTED ) { str.Format(_T("选中了第%d行"), i); AfxMessageBox(str); ...