mfc 学习的第六天
基于对话框编程
对话框是一种特殊类型的窗口,绝大多数Windows程序都通过对话框与用户进行交互。在Visual C++中, 对话框既可以单独组成一个简单的应用程序,有可以成为文档/视图结构程序的资源。
1、创建基于对话框的MFC应用程序框架
程序创建过程:
文件→新建→项目→MFC应用程序→确定→下一步→选中基于对话框→下一步→下一步→下一步→完成
1.1 对话框 模态非模态
1.2 按钮 两个caption修改内容 直接输入内容
1.3 点击触发事件 右侧属性 闪电图标;右键按钮 添加事件处理程序;双击按钮
1.4 插入窗口 窗口 右键 添加类
1.5 模态窗口创建 CDlgExeC dlg
1.5.1 dlg.DoModel()
1.6 非模态创建
1.6.1 CDlgShow dlg 写到.h做成员
1.6.2 dlg.Create 写到初始化 oninitDialog 保证只创建一次
1.6.3 dlg.showWindow()
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("./favicon.bmp"), rect.Width(),rect.Height()));
2.5 如何禁用按钮
2.5.1 m_btn.EnableWindow(FALSE); 禁用
3 编辑框的使用
3.1 EditCtrl属性
3.1.1 mutiline 多行
3.1.2 want return 可换行
3.1.3 滚动条 无限横向 纵向的输入
3.2 getWindowTextW setWindowTextW 设置和获取值
3.3 默认小bug 单行点击回车就退出了程序
3.3.1 重写OnOK 注释掉里面的代码
3.4 退出当前对话框
3.4.1 CDlalog::OnOk() OnCancel()
3.5 添加变量时 选择value
3.6 本身关联的变量 就是那个值
3.7 UpdateData(TRUE)
3.7.1 将控件的内容 同步到变量中
4 下拉框CCombox
4.1 属性中加入数据 data ;进行分割
4.2 默认排序 sort 修改false不排序了
4.3 type类型 DropList 不可以编辑
4.4 添加 AddString
4.5 删除 DeleteString
4.6 插入 InsertString
4.7 设置默认选项 setCurSel
4.8 获取当前索引 getCurSel
4.9 根据索引获取内容 getLBText(索引,CString str)
4.10 控件事件 OnCbnSelchangeCombo1
5 ListControl列表控件
5.1 view 报表模式 Report
5.2 添加表头 InsertColum
5.3 添加正文 从0索引
5.4 添加第一行第一列 insertitem(0,“张三”);
5.5 添加第一行的其他列 setitemText(行,列,具体内容)
5.6 设置风格 整行选中 网格显示
m_list.SetExtendedStyle(m_list.GetWindowTextLengthW() | LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);
6 CTreeCtrl 树控件
6.1 设置属性 设置线、按钮
6.2 设置图片集合
6.2.1 setImageList(CImageList* list,正常显示的宏)
6.2.1.1 list准备 create(30,30,32位色,4,4)
6.2.1.2 add(HICON)
6.3 添加节点
6.3.1 InsertItem(节点名称,显示图片,选中后显示的图,父节点)
6.4 设置默认节点
6.4.1 selectItem
6.5 节点间切换 触发事件 OnTvnSelchangeTree1
6.5.1 获取当前项 item = getSelectItem
6.5.2 CString str = getItemText(item)
7 CTabCtrl标签页使用
7.1 引用TabSheet.h .cpp添加到项目中
7.2 拖入控件 tab ctrl
7.3 添加变量 类型TabSheet类型
7.4 创建两个 标签页 属性border 改为 none style 改为child
7.5 标签页 添加类
7.6 主窗口中 添加标签页
//添加标签页
m_tab.AddPage(TEXT(“系统设置”), &dlg1, IDD_DIALOG1);
m_tab.AddPage(TEXT(“系统管理”), &dlg2, IDD_DIALOG2);
7.7 调用show方法显示出来
//显示
m_tab.Show();