combo box mfc et liste déroulante combobox et comlist

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

Insérez la description de l'image ici
Insérez la description de l'image ici
Insérez la description de l'image ici

Passez à l'étape suivante et terminez
Insérez la description de l'image ici
Insérez la description de l'image ici

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

Insérez la description de l'image ici

Tant qu'il est supérieur à -1, il est actuellement sélectionné

Ajouter des événements de clic à deux boutons
Insérez la description de l'image ici

增加按钮
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

Insérez la description de l'image ici
Suivez simplement la valeur par défaut,
Insérez la description de l'image ici
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);	//如果所删的元素后面没有了,那就选中设为第一项	
	}

	*/
}

Je suppose que tu aimes

Origine blog.csdn.net/dd_Mr/article/details/109277766
conseillé
Classement