当前位置: 首页 > article >正文

【MFC】初识MFC

目录

01 模态和非模态对话框

02 静态文本 static text


01 模态和非模态对话框

首先我们需要知道模态对话框和非模态对话框的区别:

        模态对话框是一种阻塞时对话框,它会阻止用户与应用程序的其他部分进行交互,直到用户与该对话框进行交互并关闭它,才能与其他界面进行交互。

        非模态对话框是一种非阻塞式对话框,它不会阻止用户与应用程序的其他部分进行交互,用户可以在非模态对话框打开的状态下,操作其他界面元素。

在这里我们简单的介绍一下如何创建这两种对话框

首先在主对话框里创建两个按钮,分别打开模态和非模态对话框,如下:

在新建两个对话框,也就是模态和非模态对话框,在资源视图中,选择dialog目录,右键插入dialog

创建的两个对话框id分别为IDD_EXEC(模态)、IDD_SHOW(非模态)

在模态对话框IDD_EXEC中将它绑定类

这里绑定DialogExec类

非模态对话框同理,绑定一个类

接下来在主对话框里,选择按钮,右键属性,如下,选择控件事件进行设置

 这里需要提醒的是,要在主对话框中显示模态对话框和非模态对话框窗口,我们需要在主对话框窗口引入这两个对话框窗口的头文件,如下:

模态对话框按钮的鼠标单击事件,要创建模态对话框,通过CDialog::DoModal()方法

 非模态的创建则不一样,如果放在按钮的点击事件中,窗口会一闪而过,因为在按钮的点击事件的dlg是局部变量,出了作用域就释放了,因此需要将dlg对象放主对话框的头文件中,如下:

非模态对话框窗口的create建议放在主窗口的构造函数,因为只要创建一次就好了,也可以使用指针变量,动态创建。

 非模态对话框的窗口主要通过ShowWindow()方法

参数是弹出窗口的显示方式,主要有如下几种:

SW_HIDE隐藏窗口并将活动状态传递给其他创建
SW_MINIMIZE最小化窗口并激活系统列表中的顶层窗口
SW_RESTORE激活并显示窗口,如果窗口是最小化或最大化大的,windows恢复其原来的大小和位置
SW_SHOW激活窗口并以当前的大小和位置显示
SW_SHOWMAXIMIZED激活窗口并显示为最大化窗口
SW_SHOWMINIMIZED激活窗口并显示为图标
SW_SHOWNA按照当前状态显示窗口,当前活动的窗口将保持活动状态
SW_SHOWOACTIVATE将窗口最近的大小和位置显示,当前活动的窗口将保持活动状态
SW_SHOWNORMAL激活并显示窗口,如果窗口是最大化或者最小化,则windows恢复它原来的大小和位置
SW_SHOWMINNOACTIVE将窗口显示为图标,当前活动的窗口将保持活动状态

02 静态文本 static text

首先我们要将对应的静态文本绑定变量,如下:

        这里要注意先修改静态文本的id,默认是IDC_STATIC,这种情况下是不能绑定变量的,我们将它修改后,再进行绑定

绑定变量m_staticText

1)获取文本内容

使用GetWindowTextW()方法

void CMFCApplication1Dlg::OnBnClickedButton2()
{// TODO: 在此添加控件通知处理程序代码CString str;m_staticText.GetWindowTextW(str);MessageBox(str);
}

效果如下: 

2)设置静态文本内容

void CMFCApplication1Dlg::OnBnClickedButton3()
{// TODO: 在此添加控件通知处理程序代码m_staticText.SetWindowTextW(_T("哈哈"));//或者使用如下//m_staticText.SetWindowTextW(TEXT("哈哈!!"));
}

效果如下:

http://www.lryc.cn/news/2396060.html

相关文章:

  • C++.二分法教程
  • 如何通过数据分析优化项目决策
  • 2024年数维杯国际大学生数学建模挑战赛B题空间变量协同估计方法研究解题全过程论文及程序
  • leetcode hot100刷题日记——34.将有序数组转换为二叉搜索树
  • thinkphp 5.1 部分知识记录<一>
  • RAG:面向知识密集型自然语言处理任务的检索增强生成
  • MVVM、MVC的区别、什么是MVVM
  • 网页自动化部署(webhook方法)
  • 线性代数入门:轻松理解二阶与三阶行列式的定义与理解
  • AU6825集成音频DSP的2x32W数字型ClaSSD音频功率放大器(替代TAS5825)
  • 华为云Flexus+DeepSeek征文|DeepSeek-V3/R1商用服务体验全流程
  • Go语言的原子操作
  • Visual Studio 2022 插件推荐
  • 【深度学习-pytorch篇】3. 优化器实现:momentum,NAG,AdaGrad,RMSProp,Adam
  • C# NX二次开发-查找连续倒圆角面
  • 今天遇到的bug
  • Go语言字符串类型详解
  • 长安链智能合约命令解析(全集)
  • 一、OpenCV的基本操作
  • 裂缝仪在线监测装置:工程安全领域的“实时守卫者”
  • 【论文精读】2024 ECCV--MGLD-VSR现实世界视频超分辨率(RealWorld VSR)
  • SpringBoot简单体验
  • 【系统架构设计师】2025年上半年真题论文回忆版: 论系统负载均衡设计方法(包括解题思路和参考素材)
  • 2025年通用 Linux 服务器操作系统该如何选择?
  • Azure devops 系统之五-部署ASP.NET web app
  • Hadoop是什么
  • 学习路之PHP--easyswoole_panel安装使用
  • 结合 AI 编程,让前端开发更简单:趋势、方法与实践
  • 【拓扑排序】P6560 [SBCOI2020] 时光的流逝|普及+
  • SSRF 接收器