Zone de liste déroulante et zone de liste
combobox et com
démo
D'après la boîte de dialogue, les paramètres suivants sont tous les paramètres par défaut
Passez à l'étape suivante et terminez
Modifiez l'identifiant des deux
Toutes les zones de liste déroulante et les zones de liste ont un index, qui commence à 0
Le contrôle de zone de liste
est livré avec le tri
Tant qu'il est supérieur à -1, il est actuellement sélectionné
Ajouter des événements de clic à deux boutons
增加按钮
void CdemoDlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
CString strText;
GetDlgItemText(IDC_EDT_TEXT,strText);
m_cmb_demo.AddString(strText);
m_cmb_demo.SetCurSel(m_cmb_demo.GetCount()-1);//因为从0开始,所以最后一个是count-1,当前选中的是最后一个,即总个数减一
//添加后,默认是最后一个
m_lst_demo.AddString(strText);
m_lst_demo.SetCurSel(m_lst_demo.GetCount()-1);
}
删除按钮
void CdemoDlg::OnBnClickedButton2()
{
// TODO: 在此添加控件通知处理程序代码
int nIndex;
//组合框
nIndex = m_cmb_demo.GetCurSel();//得到索引 //每一项都会有一个索引
if(nIndex>-1)//说明有选中的项,下标从0开始,没有就是-1;
{
m_cmb_demo.DeleteString(nIndex);
if(nIndex<m_cmb_demo.GetCount())
m_cmb_demo.SetCurSel(nIndex);//设当前选中的为下一项,删除第3项,则下一项又变成了第三项
else
m_cmb_demo.SetCurSel(0); //如果所删的元素后面没有了,那就选中设为第一项
}
//列表框
nIndex = m_lst_demo.GetCurSel(); //每一项都会有一个索引
if(nIndex>-1)//说明有选中的项,下标从0开始,没有就是-1;
{
m_lst_demo.DeleteString(nIndex);
if(nIndex<m_lst_demo.GetCount())
m_lst_demo.SetCurSel(nIndex);//设当前选中的为下一项,删除第3项,则下一项又变成了第三项
else
m_lst_demo.SetCurSel(0); //如果所删的元素后面没有了,那就选中设为第一项
}
//删的时候,两边都选
}
Empêcher le retour du chariot pour sortir
void CdemoDlg::OnOK()
{
// TODO: 在此添加专用代码和/或调用基类
//CDialogEx::OnOK();
}
Utilisation simple du contrôle Listbox dans MFC
http://blog.sina.com.cn/s/blog_6ca43ae701019h8k.html
http://blog.csdn.net/winerdaxian/article/details/6560060
http://www.jizhuomi.com/software/186.html
https://my.oschina.net/ranjiewen/blog/781090
https://blog.csdn.net/chengke1866/article/details/100695768?utm_medium=distribute.pc_relevant.none-task-blog-title-3&spm=1001.2101.3001.4242
Le contrôle de zone de liste dans MFC consiste à afficher une série de texte, chaque texte occupe une ligne.
Le contrôle Listbox peut définir les propriétés comme suit:
LBS_CHILD: fenêtre enfant (par défaut)
LBS_Visible: (par défaut) visible
LBS_Multiplesel: plusieurs lignes peuvent être sélectionnées
LBS_Extendedsel: Vous pouvez utiliser shift ou ctrl pour sélectionner plusieurs lignes
LBS_SORT: toutes les lignes sont triées par ordre alphabétique
Utilisez la Listbox:
Int listbox.AddString (LPCTSTR Str): Ajouter une ligne de texte str à la première ligne de la zone de liste, c'est-à-dire à ce moment nIndex est 0;
Int listbox.DeleteString (uint nIndex): supprime la ligne de texte de la ligne nIndex dans la listbox, notez que nIndex commence à 0;
int listbox.InsertString (uint xIndex, LPCTSTR Str): insère une ligne de texte de str dans la ligne nIndex de la listbox;
Int listbox.GetCount (): Obtient le nombre total de lignes dans la listbox;
Int listbox.GetCurSel (): Récupère le nombre de lignes de texte sélectionnées par listbox.
Void listbox.ResetContent (): Efface toutes les données de la listbox;
Int listbox.GetCurCount (): Récupère le nombre de lignes sélectionnées dans la listbox;
Int listbox.FindString (int nstart, LPCTSTR Str): lancez la recherche à partir de la ligne nstart pour trouver la ligne de texte de Str;
Int listbox.SelectString (int nstart, LPCTSTR Str): à partir de la ligne nstart, sélectionnez la ligne qui contient la chaîne Str;
Pour double-cliquer sur une ligne dans la zone de liste, procédez comme suit pour générer une fonction de réponse:
> Dans BEGIN_MESSAGE_MAP () END_MESSAGE_MAP ajouté entre le mappage de message de la fonction de réponse () en tant que fonction nommée C Dlg :: OnLbnDblClk, ajoutez le code suivant est
ON_LBN_DBLCLK (IDC_LIST1, C & ID Dlg :: OnLbnDblClk) // Le contrôle IDC_LIST1 est
alors listbox C Ajouter Dlg.h dans l'instruction function OnLbnDblClk () en dernier dans C () Ajouter du code pour implémenter la fonction Dlg :: OnLbnDblClk
Suivez simplement la valeur par défaut,
puis double-cliquez, il localisera l'endroit où écrire le code
C ++ mfclistbox double-clic événement
void CdemoDlg::OnLbnSelchangeListDemo()
{
//对每一行添加事件的方法
// 列表控件可以返回第几行,然后你可以通过行获得行内容。直接点击列表控件可添加点击事件。
//CString strText1;
//GetDlgItemText(IDC_LIST_DEMO,strText1);
MessageBox(_T("点击弹出一个框"));//弹出一个框
// MessageBox()
//列表框
//int nIndex1;
// nIndex1 = m_lst_demo.GetCurSel(); //每一项都会有一个索引
//m_lst_demo.DeleteString(nIndex1);
/*
if(nIndex1>-1)//说明有选中的项,下标从0开始,没有就是-1;
{
m_lst_demo.DeleteString(nIndex1);
if(nIndex1<m_lst_demo.GetCount())
m_lst_demo.SetCurSel(nIndex1);//设当前选中的为下一项,删除第3项,则下一项又变成了第三项
else
m_lst_demo.SetCurSel(0); //如果所删的元素后面没有了,那就选中设为第一项
}
*/
}