MFC常用控件API及代码

♀尐吖头ヾ 提交于 2019-11-30 01:09:45

常用控件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);
    
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!