下拉框
属性
Data: 下拉可选项,用分号分隔( ; )
Type: DropDown,可修改选项内容;DropList,不可修改内容
sort: 排序,true,默认按照首字母排序;false,按照输入顺序排序
代码操作
添加选项:
//下拉框添加选项
m_cbx.AddString(TEXT("马尔科"));
m_cbx.AddString(TEXT("艾斯"));
m_cbx.AddString(TEXT("乔兹"));
m_cbx.AddString(TEXT("萨奇"));
m_cbx.AddString(TEXT("比斯塔"));
设置默认值
//设置默认值
m_cbx.SetCurSel(0);//下拉选项的下标
增删改
//插入值
m_cbx.InsertString(4, TEXT("布拉曼克"));
//删除选项
m_cbx.DeleteString(1);
//获取索引值
CString str1;
m_cbx.GetLBText(2,str1);
MessageBox(str1);
选项变化事件
添加事件
事件中获取变化后的选项内容
//选项变化事件
void CComboboxDlg::OnCbnSelchangeCombo1()
{
// TODO: 在此添加控件通知处理程序代码
//获取索引值
int index = m_cbx.GetCurSel();
CString str;
m_cbx.GetLBText(index, str);
MessageBox(str);
}
列表控件
属性
选择list control
View 输出样式,选择Report,报表输出
代码操作
//列表控件设置
CString str[] = { TEXT("姓名"),TEXT("性别") ,TEXT("年龄") };
//设置表头
for (int i = 0; i < 3; i++)
{
m_listc.InsertColumn(i, str[i], LVCFMT_CENTER, 100);//索引,名称,对齐方式,列宽
}
//设置正文,从零开始
for (int i = 0; i < 5; i++)
{
CString str1;
str1.Format(TEXT("小马%d"),i);
//申请一行,并添加第一列
m_listc.InsertItem(i, str1);
//添加其他列
m_listc.SetItemText(i, 1, TEXT("男"));
m_listc.SetItemText(i, 2, TEXT("22"));
}
//设置属性
//整行选中,网格线
m_listc.SetExtendedStyle(m_listc.GetExtendedStyle()| LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);
删除选中项:
while(m_ctlListCtrl.GetNextItem(-1,LVNI_ALL | LVNI_SELECTED) != -1)
{
int nItem = m_ctlListCtrl.GetNextItem(-1,LVNI_ALL | LVNI_SELECTED);
m_ctlListCtrl.DeleteItem(nItem);
}
根据索引获取文本
int nItem = 1;
CString strDel = m_ctlListCtrl.GetItemText(nItem, 0); //第一列
树控件
Tree Control
属性
has line:有连接层级的线;
has button: 是否有折叠按钮(+ 和-)
line at root: 根节点是否有线
代码操作
1、 控件添加变量(m_treec);
2、 在工程目录的res文件夹中放入ico图片,资源视图中选择Icon,右键添加资源,Icon,导入。
一如既往在dlg的初始化函数(OnInitDialog)中添加代码:
//设置图标
//CImageList list;//图片集合,防止加载时被释放,放在成员中
//尺寸x,尺寸y,位图类型,包含图片个数,开辟控件数(与图片数一致即可)
list.Create(30,30,ILC_COLOR32,4,4);
//添加具体图片
//准备HICON图标
HICON icons[4];
icons[0] = AfxGetApp()->LoadIconW(IDI_ICON1);//icon图片的id,可在属性中查找
icons[1] = AfxGetApp()->LoadIconW(IDI_ICON2);
icons[2] = AfxGetApp()->LoadIconW(IDI_ICON3);
icons[3] = AfxGetApp()->LoadIconW(IDI_ICON4);
for (int i = 0; i < 4; i++)
{
list.Add(icons[i]);
}
m_treec.SetImageList(&list,TVSIL_NORMAL);
//设置节点
//插入的节点名称,显示图标,选中时显示的图标,父节点,子节点
HTREEITEM root = m_treec.InsertItem(TEXT("根节点"), 0, 0, NULL);
HTREEITEM first = m_treec.InsertItem(TEXT("一级"), 1, 1, root);
HTREEITEM second1 = m_treec.InsertItem(TEXT("二级"), 2, 2, first);
HTREEITEM second2 = m_treec.InsertItem(TEXT("二级"), 3, 3, first);
//设置默认选中
m_treec.SelectItem(second2);
3、 选项切换时
void CComboboxDlg::OnTvnSelchangedTree1(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMTREEVIEW pNMTreeView = reinterpret_cast<LPNMTREEVIEW>(pNMHDR);
// TODO: 在此添加控件通知处理程序代码
*pResult = 0;
//获取选中项
HTREEITEM item = m_treec.GetSelectedItem();
CString itemtext = m_treec.GetItemText(item);
MessageBox(itemtext);
}
选项卡
Tab Control
属性
1、引用外部文件,复制文件到项目文件夹中。(文件源码可参照另外一篇分享文章)
添加后可在类视图中进行查看,多了一类:
2、资源视图,dialog中插入两个对话框
3、修改属性,去除边框(border:none),显示方式为子窗口(style:child);
4、为两个窗口添加类,Cdlg1,Cdlg2;
5、为选项卡控件添加变量,注意变量类型为添加的两个文件的类名CTabSheet;
代码操作
1、增加两个子窗口为DLG的成员
public:
afx_msg void OnTvnSelchangedTree1(NMHDR *pNMHDR, LRESULT *pResult);
CTabSheet m_cts;
Cdlg1 dl1;
Cdlg2 dl2;
2、 窗口初始化中增加以下设置
//添加标签页
m_cts.AddPage(TEXT("我的选项卡1"), &dl1, IDD_DIALOG1);
m_cts.AddPage(TEXT("我的选项卡2"), &dl2, IDD_DIALOG2);
//显示
m_cts.Show();