【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.pswp.cn/diannao/85496.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【HW系列】—安全设备介绍(开源蜜罐的安装以及使用指南)

文章目录 蜜罐1. 什么是蜜罐?2. 开源蜜罐搭建与使用3. HFish 开源蜜罐详解安装步骤使用指南关闭方法 总结 蜜罐 1. 什么是蜜罐? 蜜罐(Honeypot)是一种主动防御技术,通过模拟存在漏洞的系统或服务(如数据库…

TI硬件笔试面试题型解析上

本专栏预计更新60期左右。当前第14期. 这个系列通过在国内外网上搜索大厂公开的笔试和面试题目,然后构造相关的知识点矩阵,让大家对核心的知识点有更深的认识,这个过程虽然耗时费力,但大厂的很多题目(包括模拟题)确实非常巧妙,很有代表性。由于官方没有发布过这样的题库…

Python打卡训练营Day43

DAY 43 复习日 作业: kaggle找到一个图像数据集,用cnn网络进行训练并且用grad-cam做可视化 数据集地址:Lung Nodule Malignancy 肺结核良恶性判断 进阶:并拆分成多个文件 import os import pandas as pd import numpy as np from…

悲观锁与乐观锁:并发编程中的两种核心控制策略详解

在并发编程中,悲观锁和乐观锁是两种不同的并发控制策略,用于解决多个线程或进程对共享资源的并发访问问题。下面将详细介绍它们的概念、实现方式以及优缺点。 悲观锁 概念 悲观锁认为在并发环境下,多个线程或进程对共享资源的访问大概率会发…

python 如何写4或5的表达式

python写4或5的表达式的方法: python中和是用“and”语句,或是用“or”语句。那么4或5的表达式为“4 or 5” 具体示例如下: 执行结果:

麻省理工新突破:家庭场景下机器人实现精准控制,real-to-sim-to-real学习助力

麻省理工学院电气工程与计算机科学系Pulkit Agrawal教授,介绍了一种新方法,可以让机器人在扫描的家庭环境模拟中接受训练,为任何人都可以实现定制的家庭自动化铺平了道路。 本文将探讨通过Franka机器人在虚拟环境中训练的特点,研…

Linux程序管理练习题

Linux程序管理100题 一、Linux程序与进程(1-15) 程序、进程、线程的本质区别是什么? 答案:程序是静态指令集,进程是运行中的程序实例,线程是进程内的执行单元 进程的并发性和交往性体现在哪些方面&#xf…

虚幻基础:模型

能帮到你的话,就给个赞吧 😘 文章目录 资源模型:骨架/骨骼模型动画:一系列姿势补帧:只需设定关键姿势,则系统在关键帧姿势之间自动生成动画。姿势的变换:即骨骼的变换 动画蓝图:执行…

《Discuz! X3.5开发从入门到生态共建》第1章 Discuz! 的前世今生-优雅草卓伊凡

《Discuz! X3.5开发从入门到生态共建》第1章 Discuz! 的前世今生-优雅草卓伊凡 第一节 从康盛创想到腾讯收购:PC时代的辉煌 1.1 Discuz! 的诞生:康盛创想的开源梦想 2001年,中国互联网正处于萌芽阶段,个人网站和论坛开始兴起。…

如何打包conda环境从一台电脑到另外一台电脑

在 Ubuntu 系统下,使用的是 VSCode 和 Conda 环境开发项目,想要将整个 Conda 环境从一台电脑迁移到另一台电脑,可以通过以下步骤来实现打包和导入: ✅ 一、在原电脑上导出 Conda 环境 1. 激活你要导出的环境 conda activate you…

2025GDCPC广东省赛游记(附赛时代码)

我觉得算是给swan的自证之旅画上一个句号吧...说实话HDU给我带来的不止是排位上的压力,更多的是对自己能力的怀疑,特别是pluto不明说但是我很清楚的看不起(没有责备本人的意思),evil和jxj之类的总感觉看到我就是看小丑…

MySQL 修改数据的全链路流程

MySQL 修改数据的全链路流程(InnoDB) 全链路流程图关键步骤详解1. 建立连接阶段2.SQL解析与优化3. InnoDB内存操作4. 日志记录过程5. 二阶段提交(2PC) 磁盘同步机制1. Redo Log刷盘策略(innodb_flush_log_at_trx_commi…

兰亭妙微十六年高水准交互设计公司

北京兰亭妙微(蓝蓝设计)成立于 2008 年(前身为设计工作室,2011 年正式注册),由清华团队主创,专注软件和互联网 UI/UE 设计开发 16 年。我们提供从需求调研、界面设计到开发落地的全流程服务&…

【脚本 完全参数化的通用 APT 源配置方案-Debian/Ubuntu】

通过脚本在 Debian/Ubuntu 系统上一键切换 APT 源 如Dockerfile中 使用某个源(比如 aliyun) 假设你的目录结构是: . ├── Dockerfile └── switch-apt-source.shFROM ubuntu:22.04# 把脚本拷贝到镜像中 COPY switch-apt-source.sh /us…

学习日记-day20-6.1

完成目标&#xff1a; 知识点&#xff1a; 1.集合_Collections集合工具类 方法:static <T> boolean addAll(Collection<? super T> c, T... elements)->批量添加元素 static void shuffle(List<?> list) ->将集合中的元素顺序打乱static <T>…

个人总结八股文之-基础篇(持续更新)

一、集合的分类有哪些&#xff1f; Java集合框架主要分为两大类&#xff1a;Collection和Map Collection主要分为以下三类&#xff1a; List&#xff1a;有序集合&#xff0c;允许重复元素。常见的实现类有ArrayList、LinkedList和Vector。 Set&#xff1a;无序集合&#xf…

leetcode hot100刷题日记——35.子集

解答&#xff1a; 方法一&#xff1a;选or不选的dfs&#xff08;输入视角&#xff09; 思路&#xff1a;[1,2,3]的全部子集可以看成是对数组的每一位数字做选择。 eg.空集就是一个数字都不选&#xff0c;[1,2]就是1&#xff0c;2选&#xff0c;3不选。 class Solution { pub…

华为OD机试真题——生成哈夫曼树(2025A卷:100分)Java/python/JavaScript/C/C++/GO六种最佳实现

2025 A卷 100分 题型 本文涵盖详细的问题分析、解题思路、代码实现、代码详解、测试用例以及综合分析; 并提供Java、python、JavaScript、C++、C语言、GO六种语言的最佳实现方式! 本文收录于专栏:《2025华为OD真题目录+全流程解析/备考攻略/经验分享》 华为OD机试真题《生成…

房屋租赁系统 Java+Vue.js+SpringBoot,包括房屋类型、房屋信息、预约看房、合同信息、房屋报修、房屋评价、房主管理模块

房屋租赁系统 JavaVue.jsSpringBoot&#xff0c;包括房屋类型、房屋信息、预约看房、合同信息、房屋报修、房屋评价、房主管理模块 百度云盘链接&#xff1a;https://pan.baidu.com/s/1KmwOFzN9qogyaLQei3b6qw 密码&#xff1a;l2yn 摘 要 社会的发展和科学技术的进步&#xf…

Unity 中 Update、FixedUpdate 和 LateUpdate 的区别及使用场景

在Unity开发中,Update、FixedUpdate 和 LateUpdate 是生命周期函数中最常见也最容易混淆的一组。 一、调用时机 方法名调用频率调用时机说明Update()每帧调用一次跟随帧率(帧率高则调用频率高)FixedUpdate()固定时间间隔调用默认每 0.02 秒执行一次LateUpdate()每帧调用一次…