MFC基本控件的使用
文章目录
- 1、基于对话框学习控件
- 2、CStaticText 静态文本
- 3、EditCtrl 属性
- 4、下拉框Combo Box
- 5、ListControl列表控件
1、基于对话框学习控件
1.1 对话框 模态非模态
1.2 按钮 两个 captain修改内容 直接输入内容
1.3 点击触发事件 右侧属性 闪电图标 ; 右键按钮 添加事件处理程序 ; 双击按钮
1.4 插入窗口 窗口 右键 添加类
1.5 模态窗口创建 CDlgExec dlg
1.5.1 dlg.DoModal()
1.6 非模态创建
1.6.1 CDlgShow dlg 写到.h做成员
1.6.2 dlg.Create 写到初始化 oninitDialog 保证只创建一次
1.6.3 dlg.showWindow()
//模态对话框按钮的点击事件
void CMy01CDilalogDlg::OnBnClickedButton1()
{// TODO: 在此添加控件通知处理程序代码//弹出模态对话框类CDilgExec dlg;dlg.DoModal();
}//非模态对话框的点击事件
void CMy01CDilalogDlg::OnBnClickedButton2()
{// TODO: 在此添加控件通知处理程序代码//弹出非模态对话框 在这里使用一闪而过//CDilgShow dlg;//创建//dlg.Create(IDD_SHOW); //创建窗口只能创建一次,多次就会蹦掉//显示dlg.ShowWindow(SW_SHOWNORMAL);
}
2、CStaticText 静态文本
2.1 添加变量 以STATIC为结尾的ID是不可以添加变量,需要修改ID
2.2 设置内容 setWindowTextW
2.3 获取内容 getWindowTextW 按钮也一样
2.4 利用静态文本显示图片
2.4.1 bmp图片
2.4.2 #define HBMP(filepath,width,height) (HBITMAP)LoadImage(AfxGetInstanceHandle(),filepath,IMAGE_BITMAP,width,height,LR_LOADFROMFILE|LR_CREATEDIBSECTION)
2.4.3 m_pic.SetBitmap(HBMP(TEXT("./1.bmp"), rect.Width(), rect.Height()));
2.5 如何禁用按钮
2.5.1 EnableWindow(FALSE)禁用
//设置哈哈为呵呵
void CMy02CStaticTextDlg::OnBnClickedButton1()
{// TODO: 在此添加控件通知处理程序代码m_text.SetWindowTextW(TEXT("呵呵"));//设置静态控件窗口风格为位图居中显示m_picc.ModifyStyle(0xf, SS_BITMAP | SS_CENTERIMAGE);//通过路径获取bitmap句柄#define HBMP(filepath,width,height) (HBITMAP)LoadImage(AfxGetInstanceHandle(),filepath,IMAGE_BITMAP,width,height,LR_LOADFROMFILE|LR_CREATEDIBSECTION)//宽高设置 应该按照 控件的大小取设置CRect rect;m_picc.GetWindowRect(rect);//静态控件设置bitmap//m_picc.SetBitmap(HBMP(TEXT("./1.bmp"), 300, 250));m_picc.SetBitmap(HBMP(TEXT("./1.bmp"), rect.Width(), rect.Height()));
}//获取里面的内容
void CMy02CStaticTextDlg::OnBnClickedButton2()
{// TODO: 在此添加控件通知处理程序代码CString str;m_text.GetWindowTextW(str);MessageBox(str, TEXT("静态控件里面的内容"));
}void CMy02CStaticTextDlg::OnBnClickedButton3()
{// TODO: 在此添加控件通知处理程序代码//点击按钮 修改显示内容m_bta.SetWindowTextW(TEXT("<(* ̄▽ ̄*)/"));//获取里面的内容CString str;m_bta.GetWindowTextW(str);MessageBox(str, TEXT("修改按钮的内容"));//设置点击的状态m_bta.EnableWindow(FALSE);
}
3、EditCtrl 属性
3、EditCtrl 属性
3.1.1 mutiline多行
3.1.2 want return 编辑框接受回车
3.1.3 滚动条 无限横向 纵向的输入
3.2 getWindowText setWIndowText 设置和获取值
3.3 默认小bug 单行点击回车就退出
3.3.1 重写OnOk 注释掉里面的代码
3.4 退出当前对话框
3.4.1 CDialog::OnOk() OnCancel()
3.5 添加变量时候 选择 value
3.6 本身关联的变量 就是那个值
3.7 UpdateData(TURE)
3.7.1 将控件的内容 同步到变量中
4、下拉框Combo Box
4.1 属性中加入数据 data ;进行分割
4.2 默认排序 sort 修改false不排序了
4.3 type 类型 DropList不可以编辑 Dropdown可以进行编辑
4.4 添加 AddString
4.5 删除 DeleteString
4.6 插入InsertString
4.7 设置默认选项 setCurSel
4.8 获取当前索引 getCurSel
4.9 根据索引获取内容 getLBText(索引,CString str)
4.10 控件事件 OnCbnSelchangeCombo1
在OnInitDialog()初始化下:
//下拉框添加m_combox.AddString(TEXT("唐僧"));m_combox.AddString(TEXT("孙悟空"));m_combox.AddString(TEXT("猪八戒"));m_combox.AddString(TEXT("沙僧"));//设置默认选项m_combox.SetCurSel(0);//向索引为1的插入数据m_combox.InsertString(1,TEXT("白龙马")); //删除索引为2的数据m_combox.DeleteString(2);//获取1号的索引的具体内容CString str;m_combox.GetLBText(1, str);MessageBox(str,TEXT("内容"));void CcomboxBoxctrlDlg::OnCbnSelchangeCombo1()
{// TODO: 在此添加控件通知处理程序代码//拿到索引的位置int index = m_combox.GetCurSel();CString str;m_combox.GetLBText(index, str);MessageBox(str);
}
5、ListControl列表控件
5.1 属性view 报表模式 Report
5.2 添加表头 InsertCol
5.3 添加正文 从0索引
5.4 添加第一行第一列 InsertItem(0, “张三”);
5.5 添加第一行的其他列 setItemText( 行,列,具体内容)
5.6 设置风格 整行选中 网格显示
m_list.SetExtendedStyle(m_list.GetExtendedStyle() | LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);
//列表控件使用CString str[] = { TEXT("姓名"),TEXT("性别"),TEXT("年龄") };for(int i = 0; i < 3; i++){m_List.InsertColumn(i, str[i], LVCFMT_LEFT, 150);}//设置正文//设置不算正文里的内容,索引从0开始m_List.InsertItem(0, TEXT("张三"));//给这个Item插入其他列的数据m_List.SetItemText(0, 1, TEXT("男"));//循环插入数据//int j;//for (int i = 0; i < 10; i++)//{// j = 0;// CString name;// name.Format(TEXT("张三—%d"), i);// m_List.InsertItem(i, name);// //姓名和年龄// m_List.SetItemText(i,++j, TEXT("男"));// m_List.SetItemText(i, ++j, TEXT("22"));//}//设置属性 整行选中状态,显示网站m_List.SetExtendedStyle(m_List.GetExtendedStyle()|LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
