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