常用控件API及代码
静态文本框 StaticText
这里只将变量类型为control时的情况,当为value的时候不讲,变量名为m_Text
在做文本的修改的时候,要把属性ID中的后缀STATIC改成其他,否则不能修改
//1. 设置文本
m_Text.SetWindowTextW(TEXT("WHATEVER YOU LIKE"));
//2. 获取文本
CString str;
m_Text.getWindowTextW(str);
//3. 插入bmp图片, m_bmp是自己设置的文本框变量
m_bmp.ModifyStyle(0xf, SS_BITMAP | SS_CENTERIMAGE);
//定义这么一个东西,后边SetBitmap中用
#define HBMP(filepath,width,height)(HBITMAP)LoadImage(AfxGetInstanceHandle(), filepath, IMAGE_BITMAP, width, height,LR_LOADFROMFILE|LR_CREATEDIBSECTION)
//获取控件宽度和高度
CRect rect;
m_bmp.GetWindowRect(rect);
m_bmp.SetBitmap(HBMP(TEXT("./2.bmp"),rect.Width(),rect.Height()));
//turn TRUE; // 除非将焦点设置到控件,否则返回 TRUE,在对话框形式创建项目的时候存在
Edit Control
-
变量类型为control 的时候:设置内容和获取内容和静态文本的API一样, 分别是SetWindowTextW(str)和getWindowTextW(str)
-
变量类型为value的时候:
// 获取控件中的信息 Updatedata(TRUE); //变量中的信息给到控件中 Updatedata(FALSE);
下拉框Combo Box
- 创建在初始化函数中
// m_combo是变量名称
// 对下拉框添加数据
m_combo.AddString(TEXT("sdfsdf"));
// 设定当前的值, setCurSel(index)里面跟的是索引值, 可以用来设置默认值
m_combo.SetCurSel(0);
// 删除
m_combo.DeleteString(index);
//插入,传递的值一个是索引位置,一个是value
m_combo.InsertString(index, TEXT("sdf"));
//根据索引查找内容
CString str;
m_combo.GetLBText(index,str);
List Control
可以在“属性“-”value“中选择list的形式,常用的有报表"report"等
创建方法:
//插入表头
CString str[3] = { TEXT("姓名"), TEXT("性别"), TEXT("年龄")};
for (int i = 0; i < 3; i++){
m_list.InsertColumn(i, str[i], LVCFMT_LEFT, 100);
}
//设置正文, 在插入每行的第一个数据和后续数据会有些不一样。
for (int i = 0; i < 10; i++){
CString name;
name.Format(TEXT("张三_%d"), i);
m_list.InsertItem(i, name);//插入该行的第一个内容
m_list.SetItemText(i, 1, TEXT("男"));
m_list.SetItemText(i, 2, TEXT("18"));
}
//设计值风格,整行选中,加网格线
m_list.SetExtendedStyle(m_list.GetExtendedStyle() | LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);
//return TRUE; // 除非将焦点设置到控件,否则返回 TRUE
Tree Control
-
树中有节点图标,这里是需要插入图标
//treeCtrl 控件使用 //1 设置资源 // 准备HICON, 把准备好的图标给到icon中 HICON icon[4]; icon[0] = AfxGetApp()->LoadIconW(IDI_ICON1); icon[1] = AfxGetApp()->LoadIconW(IDI_ICON2); icon[2] = AfxGetApp()->LoadIconW(IDI_ICON3); icon[3] = AfxGetApp()->LoadIconW(IDI_ICON4); // 准备好list图表集合 //CImageList list; 这里list图片创建在栈区,一旦离开作用于将不再保存,所以要使得图片显示要创建到.h中 CImageList list; //设置图标的样式, 后边两个参数是图片的个数 list.Create(30, 30, ILC_COLOR32, 4, 4); //插入图标 for (int i = 0; i < 4; i++){ list.Add(icon[i]); } m_tree.SetImageList(&list,TVSIL_NORMAL); //2 设置节点 HTREEITEM rootItem = m_tree.InsertItem(TEXT("根节点"), 0, 0, NULL); HTREEITEM parentItem = m_tree.InsertItem(TEXT("父节点"), 1, 1, rootItem); HTREEITEM subItem1 = m_tree.InsertItem(TEXT("子节点1"), 2, 2, parentItem); HTREEITEM subItem2 = m_tree.InsertItem(TEXT("子节点2"), 3, 3, parentItem); //return TRUE; // 除非将焦点设置到控件,否则返回 TRUE //设置默认选中节点 m_tree.SelectItem(rootItem);
-
获取选中树的内容:
//获取当前选中项 HTREEITEM item = m_tree->GetSelectedItem(); //获取选中项的内容 CString str = m_tree->GetItemText(item);