㈠ 如何獲得MFC列表框中選中的數據
listbox控制項的一些操作
1. 屬性列表:
SelectionMode 組件中條目的選擇類型,即多選(Multiple)、單選(Single)
Rows 列表框中顯示總共多少行
Selected 檢測條目是否被選中
SelectedItem 返回的類型是ListItem,獲得列表框中被選擇的條目
Count 列表框中條目的總數
SelectedIndex 列表框中被選擇項的索引值
Items 泛指列表框中的所有項,每一項的類型都是ListItem
2. 取列表框中被選中的值
ListBox.SelectedValue
3. 動態的添加列表框中的項:
ListBox.Items.Add("所要添加的項");
4. 移出指定項:
//首先判斷列表框中的項是否大於0
If(ListBox.Items.Count > 0 )
{
//移出選擇的項
ListBox.Items.Remove(ListBox.SelectedItem);
}
5. 清空所有項:
//首先判斷列表框中的項是否大於0
If(ListBox.Items.Count > 0 )
{
//清空所有項
ListBox.Items.Clear();
}
6. 列表框可以一次選擇多項:
只需設置列表框的屬性 SelectionMode="Multiple",按Ctrl可以多選
7. 兩個列表框聯動,即兩級聯動菜單
//判斷第一個列表框中被選中的值
switch(ListBox1.SelectValue)
{
//如果是"A",第二個列表框中就添加這些:
case "A"
ListBox2.Items.Clear();
ListBox2.Items.Add("A1");
ListBox2.Items.Add("A2");
ListBox2.Items.Add("A3");
//如果是"B",第二個列表框中就添加這些:
case "B"
ListBox2.Items.Clear();
ListBox2.Items.Add("B1");
ListBox2.Items.Add("B2");
ListBox2.Items.Add("B3");
}
8. 實現列表框中項的移位
即:向上移位、向下移位
具體的思路為:創建一個ListBox對象,並把要移位的項先暫放在這個對象中攔悔。
如果是向上移位,就是把當前選定項的的上一項的值賦給當前選定的項,然後
把剛才新加入的對象的值,再附給當前選定項的前一項。
具體代碼為:
//定義一個變數,作移位用
index = -1;
//將當前條目的文本以及值都保存到一個臨時變數裡面
ListItem lt=new ListItem (ListBox.SelectedItem.Text,ListBox.SelectedValue);
//被選中的項的值等於上一條或下一條的值
ListBox.Items[ListBox.SelectedIndex].Text=ListBox.Items[ListBox.SelectedIndex + index].Text;
//被選中的項的值等於上一條或下一條的值
ListBox.Items[ListBox.SelectedIndex].Value=ListBox.Items[ListBox.SelectedIndex + index].Value;
//把被臘衡臘選中項的前一條或下一條的值用臨時變數中的取代
ListBox.Items[ListBox.SelectedIndex].Test=lt.Test;
//把被選中項的前一條或下一條的值用臨時變數中的取代
ListBox.Items[ListBox.SelectedIndex].Value=lt.Value;
//把滑鼠指針放到移動後的那輪滑項上
ListBox.Items[ListBox.SelectedIndex].Value=lt.Value;
9. 移動指針到指定位置:
(1).移至首條
//將被選中項的索引設置為0就OK了
ListBox.SelectIndex=0;
(2).移至尾條
//將被選中項的索引設置為ListBox.Items.Count-1就OK了
ListBox.SelectIndex=ListBox.Items.Count-1;
(3).上一條
//用當前被選中的索引去減 1
ListBox.SelectIndex=ListBox.SelectIndex - 1;
(4).下一條
//用當前被選中的索引去加 1
ListBox.SelectIndex=ListBox.SelectIndex + 1;
listBox顯示最下面的一行。listBox1.SelectedIndex = listBox1.Items.Count - 1;
listBox刪除所選擇的行 listBox1.Items.Remove(listBox1.SelectedItem);
combo box用法:
㈡ mfc如何將編輯框的內容讀取到列表控制項中
1、為界面添加一個List Control控制項。x0dx0a2、更改這個控制項的view屬性為Reportx0dx0a3、為這個控制項添加一個控制型變數 假設飢敗漏為m_ctlList;x0dx0a4、在界面的初始化函數OnInitDialog()函數中初始化這個控制項主要是插入列表的頭,主要調用x0dx0aint InsertColumn( int nCol, LPCTSTR lpszColumnHeading, int nFormat = LVCFMT_LEFT, int nWidth = -1, int nSubItem = -1 );這個函數。x0dx0a其中 nCol是列的索引,從0開始 ;lpszColumnHeading 列的名稱 ;nFormat 文字的擺放方式;nWidth 寬的度度。x0dx0a如:x0dx0am_ctlList.InsertColumn(0,"姓名",LVCFMT_CENTER,60);//第一列,名稱為姓名,文字居中顯示,列的寬度為60像素x0dx0am_ctlList.InsertColumn(1,"性別",LVCFMT_CENTER,60);//第二列,名稱為性別,文字居中顯示,列的寬度為60像素x0dx0a....x0dx0a5.在界面中添加一個「添加按鈕」,在爛爛按鈕的響應函數中向列表控制項m_ctlList插入數據主要代碼如下。x0dx0a UpdateData(TRUE);//將界面的數據更新到對應的變數枯御中x0dx0aint count=m_ctlList.GetItemCount();//獲取當前存在的數據總量x0dx0am_ctlList.InsertItem(count,"張三");//插入一行x0dx0am_ctlList.SetItemText(count,1,"男");//改變列2的顯示文字
㈢ 怎樣調用mfc中列表框里的數據
你的標准參數表在哪兒?
如果你的標准參數在資料庫中的話
你就要定義一個cdatabase類的對象,然後用他來打開資料庫。然後定義一個crecordset類的對象,用它來進行對資料庫的select查詢(這個查詢的結果最後會返回至蠢和對象中)。然後你在把這個對象里的內容和對話框中每個文本框內的數據進行比較就可以了啊。
具體可能比較復雜,但是思路皮謹還是比帶握盯較簡單的,如果有不會的
可以繼續追問
㈣ MFC中的listctrl裡面,點擊列表內的任一項可以提取內容並用combobox顯示
添加一備悶個單擊列表的消物滾啟息函數
ON_NOTIFY(NM_CLICK, IDC_MATRIX_LIST, &CXXDlg::OnNMClickList)
OnNMClickList()
{
UpdateData();
nListItem = -1;
LPNMITEMACTIVATE lpNMItemActivate = (LPNMITEMACTIVATE)pNMHDR;
if(lpNMItemActivate != NULL)
{
if(lpNMItemActivate->iItem!=-1)
nListItem = lpNMItemActivate->iItem;
else
return;
}
STUDENT *stu= (STUDENT *)m_List.GetItemData(nListItem);
if(NULL==stu)
return;
else
commbox.setitemitem(commbox.addstring(stu.tel),n);
答題就是,有一個單擊響應函數,將單擊的行的罩如信息取出來,讀取相應的數據add到commbox中
㈤ MFC中 如何獲取列表框里,選中項的text 是一個一個那種
響應單擊事件。可以類向導直接添加方便快捷下面是手動添加的代碼
//添加函數聲悔或棚明
afx_msgvoidOnClick(NMHDR*pNMHDR,LRESULT*pResult);
//添加消息映射
ON_NOTIFY_REFLECT(NM_CLICK,OnClick)
voidCDlgXXX::OnClick(NMHDR*pNMHDR,LRESULT*pResult)
{
NM_LISTVIEW*pNMListView=(NM_LISTVIEW*)pNMHDR;
for(inti=0;i<m_list.GetItemCount();i++)
{
if(m_list.GetItemState(i,LVIS_SELECTED)==LVIS_SELECTED)
{
TCHARszBuf1[30]={0};
LVITEMlvi;
lvi.iItem=i;//行
lvi.iSubItem=0;//列
團宏lvi.mask=LVIF_TEXT;
lvi.pszText=szBuf1;
lvi.cchTextMax=30;
m_list.GetItem(&lvi);
CStringstr碧則=szBuf1;
}
}
*pResult=0;
}
㈥ MFC中列表控制項怎麼實現查找
偽代碼
for 0 to list.getitemcount
list.getitemtext(...)
getwindowtext(文本框控制項ID)
如果棚畢扒上面鏈昌兩個得到數謹的字元串相等 break
㈦ 如何得到MFC中的列表控制項中某一格內的數據
首先你要知道mfc列表控制項的工作原理。跟禪喊VB一樣,列表框里從上到下是一個數組,如果共10項的話,第一項(列表框最上面那一項)為0,第二項為1,然後2,3,4,.....到9.你要確定寬山你所要得到的那格數據的項數。
比如定義一個列表控制項,裡面內容如下:
【雪山飛狐
連城訣
天龍八部
射鵰英雄傳】
你要得到天龍八部這個數據,首先它在列表框從上到下第三個位置,項數是2,
然後在classwizard中為列表控制項添加變數m_strlist;
接著在你的程序里定義一個CString 類型變賀巧野量 CString temp;
然後寫 m_strlist.GetText(2,temp);
這樣就把天龍八部放到了temp 變數里
㈧ MFC列表控制項如何實現獲取某一列的全部數據(行數不確定)
你可以磨頌用myList.etItemCount獲雹芹取列表中的行數,再循環取出數據,轉換成數字相加不就源游畢行了。
㈨ 在C++的面向對話框的MFC里,列表框要怎麼輸出數據啊
1
自己先定義一個慧沒容器來裝載要輸出的數據。2
用GetItemText()或GetItemData()這兩個函數可以得到每一個列表的數據,返回值分別是一個CString類型和一個DWORD類型,具體用法你可以直接MSDN查一下就行了。(PS:用GetCount()可以顫旦得到當前列表中列表項的總數,遍歷的時候可以用茄碧擾它)