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;
}