ListBox用法

MFC----ListBox用法

 

VC++2005 MFC ListBox(列表框)的使用  作者:邵盛松 转自百度文库

ListBox的操作比较简单

1.        添加数据

声明控件变量的类别为Control,变量类型为CListBox,变量名为m_ListBox_Content.

m_ListBox_Content.AddString(_T("123"));

m_ListBox_Content.AddString(_T("汉字"));

m_ListBox_Content.AddString(_T("English"));

m_ListBox_Content.AddString(_T("!@#$%^&*()"));

2.        获取数据

CString s;

m_ListBox_Content.GetText(1,s);

MessageBox(s,_T("取得第2行数据"),MB_OK);

s.ReleaseBuffer();

将会得到"汉字"这个字符串,如果没有得到"汉字"这个字符串,是因为ListBox的Sort属性设为True了.设为False之后就按照你编写的顺序写入.

3.        获取选择的数据

首先要将ListBox的Selection属性设置为Multiple;

int nSel;

nSel=m_ListBox_Content.GetCurSel();

CString s;

m_ListBox_Content.GetText(nSel,s);

MessageBox(s,_T("您选择的是"),MB_OK);

s.ReleaseBuffer();

4.        获取选择ListBox项的多个数据

首先要将ListBox的Selection的属性设置为Multiple

int nSel = m_ListBox_Content.GetSelCount();

CArray< int,int& > arrayListSel;

arrayListSel.SetSize(nSel);   

m_ListBox_Content.GetSelItems(nSel,arrayListSel.GetData());   

CString s = _T("");

for( int i=0; i< nSel; i++ )

{

m_ListBox_Content.GetText( arrayListSel[i], s);

MessageBox(s,_T("您选择的是"),MB_OK);

}

5.        双击删除所选项

添加一个ListBox的双击事件

m_ListBox_Content.DeleteString(m_ListBox_Content.GetCurSel());

 

6.        设置listbox的设置水平滚动条

void Cjmail_testDlg::SetListBoxSPGD()

{

// 设置listbox的水平滚动条

  CString   str;  

  CSize   sz;  

  int  dx=0;  

  CDC     *pDC  =   this->GetDC();  

  //find   the   longest  string!  

  for   (int  i=0;i   <   m_ctlList2.GetCount();i++)  

  {  

  m_ctlList2.GetText(   i,  str   );  

  sz   =  pDC->GetTextExtent(str);  

 

  if  (sz.cx   >   dx)  

  dx   =  sz.cx;  

  }  

  this->ReleaseDC(pDC);

 

  //下面的代码屏蔽掉垂直滚动条所占的客户区的尺寸 

  CRect   rectWindow,rectClient;  

  this->m_ctlList2.GetClientRect(rectClient);  

  this->m_ctlList2.GetWindowRect(rectWindow);  

  CSize  extSize=rectWindow.Width()-rectClient.Width();  

 

  //设置水平滚动条的属性 

  this->m_ctlList2.SetHorizontalExtent(dx+extSize.cx);  

// 设置listbox的水平滚动条

 

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值