01 模态对话框创建



更改标题名:

菜单栏 --> 视图—>工具箱 ,找到工具箱

导入两个按钮:

准备对话框:
插入就可以了,更改名称

双击按钮,可以进入点击事件


创建控件的类:右击->创建类
多了CDlgExex.h,并需要导入01 DialoglDlg

添加代码:

void CMy01Dialog1Dlg::OnBnClickedButton1()
{// TODO: 在此添加控件通知处理程序代码//点击按钮,弹出模态对话框CDlgExex dlg;//模态方式弹出对话框dlg.DoModal();
}

02 非模态对话框创建

其他步骤同01 步骤


void CMy01Dialog1Dlg::OnBnClickedButton2()
{// TODO: 在此添加控件通知处理程序代码//弹出非模态对话框//CDlgShow dlg; //保存到了成员属性中,不会被释放掉//dlg.Create(IDD_SHOW); //不允许创建多次 dlg ,写到OnInitDialog初始化代码中dlg.CenterWindow();//居中显示dlg.ShowWindow(SW_SHOWNORMAL);
}

03 StaticText静态文本使用

更改标题名


IDC_STATIC中STATIC的控件不可更改,所有需要更改名称

右击-》添加变量,更改里面配置

查看属性变量
方法一:右击—》类向导

方法二:类视图

void CMy02StaticTextDlg::OnBnClickedButton1()
{// TODO: 在此添加控件通知处理程序代码//点击设置按钮,设置为文本 呵呵m_Text.SetWindowTextW(TEXT("呵呵"));
}void CMy02StaticTextDlg::OnBnClickedButton2()
{// TODO: 在此添加控件通知处理程序代码//点击获取按钮,获取到控件当前的文本CString str;m_Text.GetWindowTextW(str);MessageBox(str);
}


设置图片:
添加控件,更改名称

更改名称:

为了一运行就有图片,需要初始化中添加

 // TODO: 在此添加额外的初始化代码//static Text显示图片//设置静态控件窗口m_Img.ModifyStyle(0xf, SS_BITMAP | SS_CENTERIMAGE);//通过路径获取bitmap句柄#define HBMP(filepath,width,height) (HBITMAP)LoadImage(AfxGetInstanceHandle(), filepath, IMAGE_BITMAP, width, height,LR_LOADFROMFILE | LR_CREATEDIBSECTION)//静态控件设置bitmapm_Img.SetBitmap(HBMP(TEXT("./1.bmp"), 300, 250));return TRUE;  // 除非将焦点设置到控件,否则返回 TRUE



上述图片显示不全,以下方案解决:

// TODO: 在此添加额外的初始化代码//static Text显示图片//设置静态控件窗口m_Img.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_Img.GetWindowRect(rect);//静态控件设置bitmapm_Img.SetBitmap(HBMP(TEXT("./1.bmp"), rect.Width(), rect.Height()));



获取按钮标签:

void CMy02StaticTextDlg::OnBnClickedButton3()
{// TODO: 在此添加控件通知处理程序代码//获取按钮当前内容CString str;m_btn.GetWindowTextW(str);MessageBox(str);//设置内容m_btn.SetWindowTextW(TEXT(" ^ _^"));//禁用按钮m_btn.EnableWindow(FALSE);
}

04 CEditCtrl控件使用

防止敲回车,对话框消失,更改多行属性

相应换行,更改属性:

横纵向可以无限输入,更改属性:

回到第一行,增加滚动条,更改属性:

添加成员变量:

edit1初始化:

void CEditCtrlDlg::OnBnClickedButton1()
{// TODO: 在此添加控件通知处理程序代码//点击赋值,将edit1内容,粘贴到edit2中CString str;m_edit1.GetWindowTextW(str);m_edit2.SetWindowTextW(str);}void CEditCtrlDlg::OnBnClickedButton2()
{// TODO: 在此添加控件通知处理程序代码//点击关闭//退出整个程序//exit(0);//退出当前对话框//CDialogEx::OnOK();CDialogEx::OnCancel();
}


解决:一行输入回车,对话框没有

右击-》属性-》OnOK重写

void CEditCtrlDlg::OnOK()
{// TODO: 在此添加专用代码和/或调用基类//一按回车,关联OnOk代码//CDialogEx::OnOK();
}

更改成员变量:


void CEditCtrlDlg::OnBnClickedButton3()
{// TODO: 在此添加控件通知处理程序代码//设置edit3内容m_edit3 = TEXT("哈哈");//将变量 同步到控件上UpdateData(FALSE);
}void CEditCtrlDlg::OnBnClickedButton4()
{// TODO: 在此添加控件通知处理程序代码//将控件里的内容,同步到变量中UpdateData(TRUE);MessageBox(m_edit3);
}

05 ComboBox下拉框使用

添加数据;更改属性:

想要数据按自己输入的顺序输出,更改属性:改为false

一般数据是代码中写的,需要进行如下操作:

当选中更改时,输出信息,需要重写下面这个函数:

// TODO: 在此添加额外的初始化代码//在下拉框添加数据m_cbx.AddString(TEXT("唐僧"));m_cbx.AddString(TEXT("孙悟空"));m_cbx.AddString(TEXT("猪八戒"));m_cbx.AddString(TEXT("沙僧"));//设置默认选中值 setCurrentSelectm_cbx.SetCurSel(0);//开除沙僧m_cbx.DeleteString(3);//添加白龙马m_cbx.InsertString(2, TEXT("白龙马"));//根据索引查找内容CString str;m_cbx.GetLBText(2, str);MessageBox(str);return TRUE;  // 除非将焦点设置到控件,否则返回 TRUE
}
void CMy04ComboxCtrlDlg::OnCbnSelchangeCombo1()
{// TODO: 在此添加控件通知处理程序代码//获取到当前索引,getCurrentSelectint index = m_cbx.GetCurSel();CString str;m_cbx.GetLBText(index, str);MessageBox(str);
}

06 CListCtrl控件使用


改成报表模式:

添加变量:

// TODO: 在此添加额外的初始化代码//listctrl 控件进行初始化//插入表头CString str[3] = { TEXT("姓名"),TEXT("性别") ,TEXT("年龄") };for (int i = 0; i < 3; i++){m_list.InsertColumn(i, str[i], LVCFMT_LEFT, 100);}//设置正文,依然从0开始索引//设置张三,当前行//m_list.InsertItem(0, TEXT("张三"));//补充张三行 其他内容//m_list.SetItemText(0, 1, TEXT("男"));//m_list.SetItemText(0, 2, TEXT("18"));for (int i = 0; i < 10; i++){int 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("18"));}//设置风格,整行选中,加入网格线m_list.SetExtendedStyle(m_list.GetExtendedStyle() | LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);//整行选中return TRUE;  // 除非将焦点设置到控件,否则返回 TRUE
}

07 CTreeCtrl 树控件使用

树形出现线,更改属性:

节点与节点之间有按钮:

根节点与根节点之间有线:


添加图片:

 // TODO: 在此添加额外的初始化代码//treeCtrl 控件使用//1.设置资源//准备HICONHICON 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);//CImageList list; 已经放在.h中,做成员属性了//准备好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 sub1 = m_tree.InsertItem(TEXT("子节点1"), 2, 2, parentItem);HTREEITEM sub2 = m_tree.InsertItem(TEXT("子节点2"), 3, 3, parentItem);//默认选中 子节点1m_tree.SelectItem(sub1);return TRUE;  // 除非将焦点设置到控件,否则返回 TRUE
}


一个节点到另一个节点的事件:

void CMy06CTreeCtrlDlg::OnTvnSelchangedTree1(NMHDR* pNMHDR, LRESULT* pResult)
{LPNMTREEVIEW pNMTreeView = reinterpret_cast<LPNMTREEVIEW>(pNMHDR);// TODO: 在此添加控件通知处理程序代码//获取到当前选中节点的内容//获取当前选中的行 ItemHTREEITEM item = m_tree.GetSelectedItem();//根据当前选中的行,获取里面的内容CString str = m_tree.GetItemText(item);MessageBox(str);*pResult = 0;
}

08 TabCtrl标签控件使用

详细
tabSheet.h tabSheet.cpp内容

MFC_C++02_模态对话框,非模态对话框,StaticText静态文本,CEditCtrl控件,ComboBox下拉框,CListCtrl控件,CTreeCtrl 树控件,TabCtrl标签控件相关推荐

  1. PyQt4编程之模态与非模态对话框(一)

    模态对话框(Modal Dialogue Box,又叫做模式对话框),是指在用户想要对对话框以外的应用程序进行操作时,必须首先对该对话框进行响应.如单击[确定]或[取消]按钮等将该对话框关闭.---- ...

  2. Qt下的模态和非模态对话框

    模态对话框(Modal Dialog)与非模态对话框(Modeless Dialog)的概念不是Qt所独有的,在各种不同的平台下都存在.又有叫法是称为模式对话框,无模式对话框等. 所谓模态对话框就是在 ...

  3. VC显示\关闭\销毁模态与非模态对话框技巧

    VC显示,关闭,销毁模态与非模态对话框技巧 显示对话框 显示模式对话框 CDialogDemo dlg; dlg.DoModal(); 显示非模式对话框 CDialogDemo *dlg=new CD ...

  4. JavaScrip高级应用:操作模态与非模态对话框

    JavaScrip高级应用:操作模态与非模态对话框  本文出自:http://www.computerworld.com.cn 作者: 甘冀平 (2002-01-29 20:41:38)  我们知道, ...

  5. win32模态与非模态对话框

    win32模态与非模态对话框 一.模态对话框与非模态对话框的区别 二.模拟实现模态窗口 1. 非阻塞的方式实现窗口的模态 2. 阻塞的方式实现窗口的模态 一.模态对话框与非模态对话框的区别 使用Dia ...

  6. Qt -- 19模态和非模态对话框

    什么是模态和非模态对话框 点不了其他的功能和界面.这种对话框就称为模态对话框.还有一些能够操作其他的窗口属于非模态对话框. 下面新建一个工程,新建好之后,在设计界面中搭建如下图所示窗体(1.在菜单项中 ...

  7. Win32_SDK_非模态对话框(非模态对话框窗口的销毁,模态与非模态对比,计算器项目练习)

    文章目录 1. 模态对话框与非模态对话框对比 2. 计算器项目练习模态与非模态对话框 3. 代码位置 1. 模态对话框与非模态对话框对比 模态对话框是通过DialogBox函数生成窗口,且函数的返回值 ...

  8. C++MFC基于对话框的编程——模态(非模态)对话框

    目录 一.添加MFC功能 二.创建基于MFC的应用程序框架 三.初识界面 四.上案例 1.拖控件button(两个) 2.改控件名字 2.1改名方法1 2.2改名方法2 3.添加两个新的对话框(Dia ...

  9. java 非模态_JavaScrip高级应用:操作模态与非模态对话框

    http://www.computerworld.com.cn 作者: 甘冀平 (2002-01-29 20:41:38) 我们知道,对话框一般分为两种类型:模态类型(modal)与非模态类型(mod ...

最新文章

  1. c语言程序设计试题及答案十,C语言程序设计试题试题及答案.doc
  2. poj 3660 Cow Contest
  3. 【leetcode】944. Delete Columns to Make Sorted
  4. 分割开源资料整理segmentation
  5. S3c2440A WINCE平台HIVE注册表+binfs的实现
  6. 总分第一!阿里云数据库应用迁移解决方案通过信通院首批最高级评测
  7. Spring--总体架构
  8. swift - 使用系统app导航
  9. 各科老师的语言风格一览,太真实了哈哈哈哈哈哈
  10. html5 ios cookie,iOS设置cookie到web遇到的坑
  11. c java 引用类型_java中的引用类型
  12. Git常用命令的使用方法
  13. nginx配置详解(转)
  14. 广义线性模型(GLM, Generalized Linear Model)
  15. python 实现简单画板_Python图像处理之简单画板实现方法示例
  16. 用几行代码写的bat小病毒
  17. win10资源管理器打开缓慢,自动搜索
  18. linux下载tar包和rpm包以及镜像的地址分享一下
  19. linux 如何重命名
  20. python手机代码编辑器_最受欢迎的6大Python IDE和代码编辑器

热门文章

  1. android 微票效果,Android ShimmerLayout实现微光效果解析
  2. RK3568开发笔记-EDP显示屏接口调试记录
  3. python之矩阵相加:提示用户输入矩阵的行数n,再提示用户输入矩阵的列数m,接下来,提示用户输入 2*n*m 个数字(每次输入 一个数字)。输出 C=A+B。
  4. 区块链应用技术的价值之路
  5. natapp 外网映射本地
  6. CStdioFile open失败 错误码123
  7. mysql分表插件_分库分表简单?那我想问如何实现“分库分表插件”?
  8. 原始DBHelper在.Net Core中的使用
  9. ESP8266-Arduino编程实例-ILI9341-TFT LCD驱动(基于TFT_eSPI库)
  10. 遗传算法原理简介及其MATLAB实践