mfcコンボボックスとリストボックスコンボボックスとcomlist

コンボボックスとリストボックス

コンボボックスとcom

デモ

ダイアログボックスに基づいて、以下はすべてデフォルト設定です

ここに写真の説明を挿入
ここに写真の説明を挿入
ここに写真の説明を挿入

次のステップに進み、終了します
ここに写真の説明を挿入
ここに写真の説明を挿入

両方のIDを変更します

すべてのコンボボックスとリストボックスには、0から始まるインデックスがあります

リストボックスコントロールに
は並べ替えが付属しています

ここに写真の説明を挿入

-1より大きい限り、現在選択されています

2つのボタンにクリックイベントを追加する
ここに写真の説明を挿入

增加按钮
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);	//如果所删的元素后面没有了,那就选中设为第一项	
	}


	//删的时候,两边都选


}

キャリッジが出口に戻るのを防ぐ


void CdemoDlg::OnOK()
{
    
    
	// TODO: 在此添加专用代码和/或调用基类

	//CDialogEx::OnOK();
}

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

MFCのリストボックスコントロールは一連のテキストを表示するためのもので、各テキストは1行を占めます。

リストボックスコントロールは、プロパティを次のように設定できます。

LBS_CHILD :(デフォルト)子ウィンドウ

LBS_Visible :(デフォルト)表示

LBS_Multiplesel:複数の行を選択できます

LBS_Extendedsel:shiftまたはctrlを使用して複数の行を選択できます

LBS_SORT:すべての行がアルファベット順にソートされます

リストボックスを操作します。

Int listbox.AddString(LPCTSTR Str):リストボックスの最初の行にstrテキスト行を追加します。つまり、この時点でnIndexは0です。

Int listbox.DeleteString(uint nIndex):リストボックス内のnIndex行のテキスト行を削除します。nIndexは0から始まることに注意してください。

int listbox.InsertString(uint xIndex、LPCTSTR Str):リストボックスのnIndex行にstrのテキスト行を挿入します。

Int listbox.GetCount():リストボックスの行の総数を取得します。

Int listbox.GetCurSel():リストボックスによって選択されたテキストの行数を取得します。

Void listbox.ResetContent():リストボックス内のすべてのデータをクリアします。

Int listbox.GetCurCount():リストボックスで選択された行の数を取得します。

Int listbox.FindString(int nstart、LPCTSTR Str):nstart行から検索を開始して、Strのテキスト行を検索します。

Int listbox.SelectString(int nstart、LPCTSTR Str):nstart行から開始して、Str文字列を含む行を選択します。

リストボックスの行をダブルクリックするには、応答関数を生成する手順を実行します。

>でBEGIN_MESSAGE_MAP()END_MESSAGE_MAP Cという関数としての応答関数()メッセージ・マッピングとの間に追加はDlg :: OnLbnDblClkは、次のコードが追加
ON_LBN_DBLCLK(IDC_LIST1、C&
IDはDlg :: OnLbnDblClk)// IDC_LIST1リストボックスコントロールで
、次いでC関数OnLbnDblClk()ステートメントの最後にDlg.hを追加しますC()関数Dlg :: OnLbnDblClkを実装するコードを追加します

ここに写真の説明を挿入
デフォルトに従って
ここに写真の説明を挿入
ダブルクリックするだけで、コードを書く場所が見つかります

c ++ mfclistboxダブルクリックイベント

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);	//如果所删的元素后面没有了,那就选中设为第一项	
	}

	*/
}

おすすめ

転載: blog.csdn.net/dd_Mr/article/details/109277766