新建项目->MFC模板->MFC应用程序->应用程序类型:基于对话框->...OK
解决方案资源管理器->资源文件->xxx.rc->进入:资源视图->Dialog->IDD_DEMO_DIALOG->打开工具箱(在侧面找)
//0.准备
删除默认控件:ctrl+A,fn+delete;
修改名称 属性 属性 captain
点击触发事件 属性 控件事件 BN_CLICKED ;右键 添加事件处理程序;双击进入编辑
插入窗口 右键 添加类
插入工具 右键 添加变量:控件/值 private
//1.模态/非模态对话窗口 插入Dialog
模态:只可对当前窗口操作
非模态:可对所有窗口操作
插入窗口 右键 添加类
//文件名:CAboutDlg.h
按钮1:模态对话框
void CdemoDlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
//弹出模态对话框,阻塞功能
CDlgExec dlg;
dlg.DoModal();
}
按钮2:非模态对话框
void CdemoDlg::OnBnClickedButton2()
{
// TODO: 在此添加控件通知处理程序代码
//弹出非模态对话框,
//CDlgShow dlg; 会一闪而过,写到 .h 做成员
//dlg.Create(IDD_SHOW); 创建一次,多次会崩,写到初始化 OnInitDialog
dlg.ShowWindow(SW_SHOWNORMAL);
}
//文件名:CdemoDlg.h
//给全局
private:
CDlgShow dlg;
//文件名:CdemoDlg.cpp
//给初始化
// TODO: 在此添加额外的初始化代码
dlg.Create(IDD_SHOW);
//2.静态文本 StaticText
添加变量 以STATIC结尾的ID是不可以添加变量的,需要修改变量,eg:IDC_TEXT; IDC_PIC;
// CAboutDlg.cpp
//在静态文本内添加 BITMAP(可能是我的bmp图片有问题,没显示成功)
// TODO: 在此添加额外的初始化代码
//设置静态控件风格为居中
m_pic.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_pic.GetWindowRect(rect); //静态控件设置bitmap
m_pic.SetBitmap(HBMP(TEXT("./1.bmp"), /*300,250*/rect.Width(), rect.Height()));
//三个按钮的设置
void Cdemo2Dlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
//让哈哈变成呵呵
//设置文本内容
m_text.SetWindowTextW(TEXT("呵呵"));
} void Cdemo2Dlg::OnBnClickedButton2()
{
// TODO: 在此添加控件通知处理程序代码
//获取内容
CString str;
m_text.GetWindowTextW(str);
MessageBox(str);
} void Cdemo2Dlg::OnBnClickedButton3()
{
// TODO: 在此添加控件通知处理程序代码
//修改按钮上的内容
m_btn.SetWindowTextW(TEXT("Cowry"));
//获取内容
CString str;
m_btn.GetWindowTextW(str);
MessageBox(str);
//设置点击状态,点后灰掉
m_btn.EnableWindow(FALSE); }
//3.编辑框使用 EditControl
属性:multLine 多行;Want return :true 可多行书写;Scroll 滚动条 纵横
// CAboutDlg.cpp
// TODO: 在此添加额外的初始化代码
//设置第一个编辑框内有文本内容
m_edit1.SetWindowTextW(TEXT("hello Cowry"));
//四个按钮的设置
void Cdemo3Dlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
//复制编辑框1的内容到编辑框2
CString str;
m_edit1.GetWindowTextW(str);
m_edit2.SetWindowTextW(str);
} void Cdemo3Dlg::OnBnClickedButton2()
{
// TODO: 在此添加控件通知处理程序代码 //退出程序
//exit(0); //推出当前对话框
//CDialog::OnOK();
CDialog::OnCancel(); }void Cdemo3Dlg::OnBnClickedButton3()
{
// TODO: 在此添加控件通知处理程序代码
//利用关联value方式设置和获取内容
m_text = TEXT("hello");
//将变量中的内容 同步到控件中
UpdateData(FALSE);
} void Cdemo3Dlg::OnBnClickedButton4()
{
// TODO: 在此添加控件通知处理程序代码
//将控件中的内容 同步到变量中
UpdateData(TRUE);
MessageBox(m_text);
}
//属性 重写OnOK 注释掉里面代码;为了不输入return后直接退出;
void Cdemo3Dlg::OnOK()
{
// TODO: 在此添加专用代码和/或调用基类 //CDialogEx::OnOK();
}
//4.下拉框 ComboBox
属性:加入数据data :aa;bb;cc;设置不默认排序 sort:false;设置不可编辑 type:下拉列表
// CAboutDlg.cpp
// TODO: 在此添加额外的初始化代码 //下拉框添加
m_cbx.AddString(TEXT("唐僧"));
m_cbx.AddString(TEXT("孙悟空"));
m_cbx.AddString(TEXT("猪八戒"));
m_cbx.AddString(TEXT("沙僧"));
//设置默认值
m_cbx.SetCurSel();
//插入
m_cbx.InsertString(, TEXT("白龙马"));
//删除
m_cbx.DeleteString();
//获取1号索引内容
//CString str;
//m_cbx.GetLBText(1,str);
//MessageBox(str);
//下拉框改变值时,弹出Box
void Cdemo4Dlg::OnCbnSelchangeCombo1()
{
// TODO: 在此添加控件通知处理程序代码
//拿到索引位置
int index=m_cbx.GetCurSel();
CString str;
m_cbx.GetLBText(index, str);
MessageBox(str); }
MFC/QT 学习笔记(四)——MFC基于对话框学习控件(上)的更多相关文章
-
IOS学习笔记(四)之UITextField和UITextView控件学习
IOS学习笔记(四)之UITextField和UITextView控件学习(博客地址:http://blog.csdn.net/developer_jiangqq) Author:hmjiangqq ...
-
.NET MVC 学习笔记(七)— 控制input控件
.NET MVC 学习笔记(七)— 控制input控件 画面中有时候需要输入数字,这时就需要控制input的输入.以下为保留两位有效数字. /* * 初始化数字输入 */ function initD ...
-
Winform控件学习笔记【第二天】——常用控件
背景:期末考试刚过就感冒了,嗓子火辣辣的,好难受.但是一想起要学习总结就打起精神来了,Winform控件网上也没有多少使用教程,大部分都是自己在网上零零散散的学的,大部分用的熟了,不总结会很容易忘得. ...
-
Dynamic CRM 2013学习笔记(八)过滤查找控件 (类似省市联动)
我们经常要实现类似省市联动一样的功能,常见的就是二个查找控件,一个选择了省后,另一个市的查找控件就自动过滤了,只显示当前省下的市,而不是所有的市.当然这是最简单的,实际工作中还有更复杂的功能要通过过滤 ...
-
Android学习笔记(九)——布局和控件的自定义
//此系列博文是<第一行Android代码>的学习笔记,如有错漏,欢迎指正! View是 Android中一种最基本的 UI组件,它可以在屏幕上绘制一块矩形区域,并能响应这块区域的各种事件 ...
-
Win32+API学习笔记:创建基本的窗口控件
创建一个标签 CreateWindowEx(0, "static", "姓名:", ...
-
【AngularJS学习笔记】封装一些简单的控件(封装成Html标签)
bootstrap有强大的指令系统,可以自定义一些属性,基本知识请移步:http://angularjs.cn/A00r http://www.cnblogs.com/lvdabao/p/33916 ...
-
《深入理解java虚拟机》学习笔记四/垃圾收集器GC学习/一
Grabage Collection GC GC要完毕的三件事情: 哪些内存须要回收? 什么时候回收? 怎样回收? 内存运行时区域的各个部分中: 程序计数器.虚拟机栈.本地方法栈这3个区域随 ...
-
STM32学习笔记(四) RCC外设的学习和理解
RCC时钟模块并不好理解,初次接触我也是一头雾水,而且我真正掌握它的时候也比较晚,是我在学习uC/os-II,需要分析时钟时才有了深刻认识.但在学习中我却一定要把放在了前列,因为这是整个嵌入式最重要的 ...
-
NodeJS学习笔记 进阶 (4)基于express+muter的文件上传(ok)
个人总结:这篇文章主要讲了multer插件的使用,类似于formidable,可以用来处理post表单中的文件上传,读完这篇文章需要10分钟. 摘选自网络 概览 图片上传是web开发中经常用到的功能, ...
随机推荐
-
Warning: strftime(): It is not safe to rely on the system&#39;s timezone settings.
当运行程序时,会出现如下警告: Warning: strftime(): It is not safe to rely on the system's timezone settings. You a ...
-
Django(二)
一.路由系统,URL 1.url(r'^index/', views.index), url(r'^home/', views.Home.as_view()), 2. ...
-
使用scp在windows和Linux之间互传文件
转自:http://yangzhongfei.blog.163.com/blog/static/4610987520103141050918/ 为了进行系统维护操作,有时需要再windows和linu ...
-
http+mysql结合keepalived做热备
preface 公司要求http+mysql+redis+二次开发的ldap要求做高可用,所以此处写写keepalived在这种 环境下的高可用.keepalived这个软件我就不啰嗦了,众所周知,基 ...
-
java UncaughtExceptionHandler 处理线程意外中止
本文转自:http://peirenlei.iteye.com/blog/305079 Thread的run方法是不抛出任何检查型异常(checked exception)的,但是它自身却可能因为一个 ...
-
tomacat 配置ssl协议
1.首先用jdk自带的工具keytool生成一个"服务器证书" a.命令行进入$JAVA_HOME/bin目录($JAVA_HOME为jdk的安装目录) b.输入:keytool ...
-
Geeks Interview Question: Ugly Numbers
Ugly numbers are numbers whose only prime factors are 2, 3 or 5. The sequence1, 2, 3, 4, 5, 6, 8, 9, ...
-
Linux入门(5)——Ubuntu16.04安装网易云音乐
去网易云音乐官网下载deb包: http://music.163.com/#/download 打开终端: cd 下载 .0_amd64_ubuntu16..deb sudo apt-get -f i ...
-
一次性获取PPT图片方法
XXX.ppt 改成 XXX.zip 或者 XXX.rar 解压,查看文件夹即可
-
liteide 去除go程序cmd窗口
http://blog.csdn.net/aqtata/article/details/53389261