3.MFC中的CListCtrl,CComboBox,CEdit,CTabCtrl

CListCtrl

  1.一般初始化,将对话框编辑器中表格控件的风格改为report,先加入字段名(列名),还可以额外设置风格(此处添加网格线)

m_list.InsertColumn(0, L"姓名",0,100);

	m_list.InsertColumn(1, L"年龄",0, 150);

	m_list.InsertColumn(2, L"地址", 0, 150);

	m_list.InsertColumn(3, L"工资", 0, 150);



DWORD dwStyle = m_list.GetExtendedStyle();

	dwStyle |= LVS_EX_GRIDLINES;//网格线(只适用与report风格的listctrl)

	m_list.SetExtendedStyle(dwStyle);

/*m_list.ModifyStyleEx(NULL, LVS_EX_GRIDLINES);吐槽此函数,有时起作用有时没作用尤其在控件上的表现*/

2.按行按列添加数据条目

m_list.InsertItem(0,"王大人");

m_list.SetItemText(0,1,"22");

m_list.SetItemText(0,2,"山东省亚特兰蒂斯");

m_list.SetItemText(0,3,"20000");

3.根据鼠标点击获得被点击的条目

POSITION pos = m_list.GetFirstSelectedItemPosition();

	int selnum=m_list.GetNextSelectedItem(pos);#两行代码获得最近一次被点击的条目的行
	
	m_list.DeleteItem(selnum);

4.修改数据如上添加数据

m_list.SetItemText(0,1,"20");

m_list.SetItemText(0,2,"中国亚特兰蒂斯");

m_list.SetItemText(0,3,"60000");

CComboBox

1.初始化,添加可选条目,设置初始显示条目

m_combox.AddString(L"神的领域");

	m_combox.AddString(L"恶魔的邂逅");

	m_combox.AddString(L"神奇领域");

	m_combox.SetCurSel(0);

2.鼠标点击选择后获得被选择的条目

int cursel=m_combox.GetCurSel();
CString curselstr;
switch(cursel) {
    case 0:
         curselstr=L"神的领域";
        break;

    case 1:
         curselstr=L"恶魔的邂逅";
        break;


    case 2:
         curselstr=L"神奇领域";
        break;


}   

CEdit

1.非常简单的使用,也可以在类向导内建为value型变量配合update使用

CString str1;

	m_edit.GetWindowTextW(str1);

//GetDlgItemText(IDC_EDIT1,str1) 也可以

CTabCtrl

1.编辑每个标签页对应的对话框模板,style设为child,border设为None并为此对话框建立类成员变量CPropertypage类型

2.初始化标签及标签页,包括位置等等 因为标签页面初始位置不在标签控件内

m_tab.InsertItem(0, L"第一个标签页");
	m_tab.InsertItem(1, L"第二个标签页");
	CRect rt,rect;
	m_tab.GetWindowRect(rect);
	ScreenToClient(rect);
	m_tab.GetItemRect(0, rt);
	rect.top += rt.Height() + 2;
	rect.DeflateRect(2, 2);
	
	
	

	
	m_page1.Create(IDD_DIALOG1, this);
	m_page1.MoveWindow(rect);
	m_Page2.Create(IDD_DIALOG2, this);
	
	m_Page2.MoveWindow(rect);
	m_page1.SetFocus();
	m_page1.ShowWindow(SW_SHOW);

3.点击标签实现标签页切换功能,在消息类型为TCN_SELCHANGE的消息映射函数添加代码如下:

void CMFCApplication3Dlg::OnSelchangeTab1(NMHDR* pNMHDR, LRESULT* pResult)
{
	// TODO: 在此添加控件通知处理程序代码
	int nSel = m_tab.GetCurSel();
	
	m_page1.ShowWindow(SW_HIDE);
	m_Page2.ShowWindow(SW_HIDE);
	switch (nSel) {
	case 0:
		m_page1.SetFocus();
		m_page1.ShowWindow(SW_SHOW);
		break;
	case 1:
		m_Page2.SetFocus();
		m_Page2.ShowWindow(SW_SHOW);

	}
	*pResult = 0;
}

 

你可能感兴趣的:(MFC)