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

【mfc/VS2022】计图实验:绘图工具设计知识笔记2

按钮添加处理程序

1.类视图找到对应类右击,类向导

2. 找到对应的的按钮id

如何将画出的两个相交的圆都显示出来,而不是重叠(如下图)隐藏了一条圆弧

问题如图:

因为矩形和圆心其实是个背景色的封闭图形,所以会把其他一些线条遮住,采用了空心笔刷(也就是不填充),这样他们就是透明的封闭图形了。

解决方案实例(即是设置不填充的笔刷,要用selectstockobject来选gdi提供好的):

只需要创建一个NULL画刷:
CClientDC pdc(this);
CBrush *OldBrush;
OldBrush=(CBrush*)pdc.SelectStockObject(NULL_BRUSH);//创建一个不填充的画刷
pdc.Ellipse(0,0,50,50); //画圆
。。。
pdc.SelectObject(OldBrush);

c++图形编程(用MFC),如何将画出的两个相交的圆都显示出来,而不是重叠(如下图)隐藏了一条圆弧。icon-default.png?t=N7T8https://zhidao.baidu.com/question/480634499.html

修改文档标题 

以下来自——【2019】VC++深入详解(第3版)

当程序启动时会建立一个文档,文档的默认标题为“无标题”。既然OnNewDocument这个函数在 程序启动时就要被调用,因此可以在这个函数中设置文档的标题。也就是说,我们可以在CGraphicDoc类的OnNewDocument函数中修改文档 的标题,这可以通过使用CDocument类中的成员函数SetTitle来实现。

 

 除了可以在 OnNewDocument 函数中修改文档标题以外,还可以通 过 IDR_MAINFRAME字符串资源来实现。打开Graphic程序的字符串资源 表,可以看到其中有一个名为 IDR_MAINFRAME 的字符串资源,该资源 字符串实际上是由“\n”字符分隔的7个子串,如图14.4所示。

 从图14.4可以看到前两个“\n”字符之间没有任何内容,正因为 如此,文档才没有标题,在程序运行后,窗口标题上显示的文档名称 就是“无标题”。我们可以在这两个“\n”字符之间先添加一个标 题,例如“Graphic”,然后将先前添加的SetTitle语句(例14-4所示 代码中加灰显示的那行代码)注释起来。再次运行Graphic程序,可以 看到这时程序窗口上文档标题就变成了“Graphic”,如图14.5所示。

修改-后面的内容

 

因此,如果把 Graphic 程序的 IDR_MAINFRAME 字符串资源中第 一个子串替换为:“http://www.phei.com.cn”,再次运行Graphic程 序 , 就 可 以 看 到 该 程 序 主 框 架 窗 口 的 标 题 变 成 了 : http://www.phei.com.cn,如图14.6所示

修改文件\打开里的过滤项 

IDR_MAINFRAME 字符串资源的第四个子串是对文档类型的描述和 一个适用于此类型的通配符过滤器,该子串应该与第五个子串一起使 用。在本例中,这个字符串是空的,当Graphic程序运行后,单击【文 件\打开】菜单项时,将出现如图14.8所示的打开对话框,可以发现此 时在文件类型下拉列表框中只有“所有文件(*.*)”一项。 

 下面,修改Graphic程序中IDR_MAINFRAME字符串资源的第四个子 串,首先将其指定为:“Text Files(*.txt)”,并将第五个子串设 置为:“.txt”。然后运行Graphic程序,单击【文件\打开】菜单 项,程序将弹出如图14.9所示的“打开”对话框,可以看到现在在文 件类型下拉列表框中有了一个“Text Files(*.txt)”选项,并且若 选中该选项的话,在文件列表中就只能看到文本文件了。

 注意:经过在VS2022上实践,这两个字串不需要引号。

相关文章:

【mfc/VS2022】计图实验:绘图工具设计知识笔记2

按钮添加处理程序 1.类视图找到对应类右击,类向导 2. 找到对应的的按钮id 如何将画出的两个相交的圆都显示出来,而不是重叠(如下图)隐藏了一条圆弧 问题如图: 因为矩形和圆心其实是个背景色的封闭图形,所…...

Redis数据结构之quicklist

前言 为了节省内存,Redis 推出了 ziplist 数据类型,采用一种更加紧凑的方式来存储 hash、zset 元素。因为查找的时间复杂度是 O(N),且写入需要重新分配内存,所以它仅适用于小数据量的存储,而且它还存在 连锁更新 的风…...

MMKV(1)

内存准备 通过 mmap 内存映射文件,提供一段可供随时写入的内存块,App 只管往里面写数据,由操作系统负责将内存回写到文件,不必担心 crash 导致数据丢失。 数据组织 数据序列化方面选用 protobuf 协议,pb 在性能和空…...

centos 7.9 源码安装htop

1.下载源码 wget http://sourceforge.net/projects/htop/files/latest/download 2.上传到tmp目录,并解压 tar xvzf htop-1.0.2.tar.gz mv htop-1.0.2 /opt/ 进入到 cd /opt/htop-1.0.2/ 3.编译并安装 ./configure && make && make install 4.…...

Element UI之Button 按钮

Button 按钮 常用的操作按钮。 按需引入方式 如果是完整引入可跳过此步骤 import Vue from vue import { Button } from element-ui import element-ui/lib/theme-chalk/base.css import element-ui/lib/theme-chalk/button.css import element-ui/lib/theme-chalk/icon.cs…...

dig 简明教程

哈喽大家好,我是咸鱼 不知道大家在日常学习或者工作当中用 dig 命令多不多 dig 是 Domain Information Groper 的缩写,对于网络管理员和在域名系统(DNS)领域工作的小伙伴来说,它是一个非常常见且有用的工具。 无论是简单的 DNS 解析查找还…...

深度分析AMQP以及在rabbitMQ中的应用

文章目录 AMQP是什么AMQP在rabbitMQ中的应用AMQP协议的三层AMQP的三大组件AMQP的连接信道RabbitMQ 如何实现信道: AMQP是什么 AMQP(Advanced Message Queuing Protocol)是一种开放标准的消息队列协议。它提供了一个统一的、可靠的、异步的消…...

GB/T 28627-2023 抹灰石膏检测

抹灰石膏是指以半水石膏、Ⅱ型无水石膏单独或两者混合后作为主要胶凝材料,掺入集料和外加剂制成的用于建筑物室内墙面和顶棚基底抹灰找平用的石膏砂浆。 GB/T 28627-2023抹灰石膏检测项目: 测试项目 测试方法 凝结时间 GB/T 28627 保水率 GB/T 286…...

JDK版本和Gradle版本配套关系

Java versionSupport for compiling/testing/…​Support for running Gradle 8 N/A 2.0 9 N/A 4.3 10 N/A 4.7 11 N/A 5.0 12 N/A 5.4 13 N/A 6.0 14 N/A 6.3 15 6.7 6.7 16 7.0 7.0 17 7.3 7.3 18 7.5 7.5 19 7.6 7.6 20 8.1 8.3 21 …...

在Linux中,怎么查看自己电脑的系统架构是什么?

2023年10月18日,周三晚上 这些命令会返回一个字符串,表示系统的架构。 常见的架构包括 x86(32位)、x86_64(64位)、ARM 等。 方法1:使用uname命令 uname -m方法2:使用arch命令 ar…...

自5月以来,俄罗斯Sandworm黑客侵入了11家乌克兰电信公司

导语:据乌克兰计算机应急响应团队(CERT-UA)的最新报告称,自2023年5月至9月,俄罗斯政府支持的黑客组织Sandworm成功侵入了乌克兰的11家电信服务提供商。这一组织被认为与俄罗斯武装部队的GRU有关。 简介 根据乌克兰计算…...

怎样做好接口自动化测试?

今天介绍一下在接口自动化测试相关实践中总结到的一些经验。 接口自动化测试的目的 自动化测试的主要目的是用来回归测试的,当代码有变化时,有可能影响不应该变化的逻辑,这个时候为了确认这种情况,就需要进行回归测试。有时候回…...

Leetcode刷题详解——找到字符串中所有字母异位词

1. 题目链接:438. 找到字符串中所有字母异位词 2. 题目描述: 给定两个字符串 s 和 p,找到 s 中所有 p 的 异位词 的子串,返回这些子串的起始索引。不考虑答案输出的顺序。 异位词 指由相同字母重排列形成的字符串(包括…...

Android 自定义view 圆形进度条

Android 自定义view 圆形进度条 前言一、码前分析二、开码1.画笔2.弧度3.圆弧的位置4.暴露给外部设置进度条的方法三、使用四、完整代码 总结 前言 先来看看效果,大概要实现这么一个圆形的进度条 一、码前分析 要实现这么一个进度条的效果,实际上是要画…...

混凝土基础的智能设计:VisualFoundation 12.0 Crack

实现混凝土基础的智能设计:工程师依靠 VisualFoundation:使用这个专注的工具可以更轻松、更强大地对基础进行建模。通用 FEA 工具(如VisualAnalysis)可以做很多事情,但对于特定于基础的工程来说,这更快、更智能。 草图边界 快速绘…...

C++中成员函数的重载覆盖与隐藏

1.重载与覆盖 重载:成员函数被重载的特征:在同一个类中,函数名相同,参数不同,vritual关键字可有可无。 覆盖:覆盖是指派生类函数覆盖基类函数,特征是:在有继承关系的类中&#xff0…...

电子器件系列49:CD4050B缓冲器

同相和反向缓冲器 还搞不懂缓冲电路?看这一文,工作原理作用电路设计使用方法 - 知乎 (zhihu.com) 缓冲器_百度百科 (baidu.com) 1、缓冲器的定义 缓冲器是数字元件的其中一种,它对输入值不执行任何运算,其输出值和输入值一样&…...

Leetcode 349 两个数组的交集 (哈希表)

Leetcode 349 两个数组的交集 (哈希表) 解法1 😋解法2 解法1 😋 自己的笨比方法:【哇这居然是标准解法之一,我不是笨比😋😋😋】 创建了两个hash数组,nums1出现一个就对应…...

基于YOLOv8模型的水下目标检测系统(PyTorch+Pyside6+YOLOv8模型)

摘要:基于YOLOv8模型的水下目标检测系统可用于日常生活中检测与定位鱼、水母、企鹅、海鹦、鲨鱼、海星、黄貂鱼,利用深度学习算法可实现图片、视频、摄像头等方式的目标检测,另外本系统还支持图片、视频等格式的结果可视化与结果导出。本系统…...

vue-cli脚手架创建项目时报错Error: command failed: npm install --loglevel error

项目背景 环境:vue-cli 5.x 在工程文件中,后端模块wms已经创建完成,现在想新建一个名为vue-web的前端模块 执行命令vue create vue-web时, 报错Error: command failed: npm install --loglevel error 问题分析及解决 排查过程…...

(二)TensorRT-LLM | 模型导出(v0.20.0rc3)

0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述,后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作,其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...

JVM垃圾回收机制全解析

Java虚拟机(JVM)中的垃圾收集器(Garbage Collector,简称GC)是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象,从而释放内存空间,避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...

网络编程(UDP编程)

思维导图 UDP基础编程(单播) 1.流程图 服务器:短信的接收方 创建套接字 (socket)-----------------------------------------》有手机指定网络信息-----------------------------------------------》有号码绑定套接字 (bind)--------------…...

docker 部署发现spring.profiles.active 问题

报错: org.springframework.boot.context.config.InvalidConfigDataPropertyException: Property spring.profiles.active imported from location class path resource [application-test.yml] is invalid in a profile specific resource [origin: class path re…...

音视频——I2S 协议详解

I2S 协议详解 I2S (Inter-IC Sound) 协议是一种串行总线协议,专门用于在数字音频设备之间传输数字音频数据。它由飞利浦(Philips)公司开发,以其简单、高效和广泛的兼容性而闻名。 1. 信号线 I2S 协议通常使用三根或四根信号线&a…...

MySQL 8.0 事务全面讲解

以下是一个结合两次回答的 MySQL 8.0 事务全面讲解,涵盖了事务的核心概念、操作示例、失败回滚、隔离级别、事务性 DDL 和 XA 事务等内容,并修正了查看隔离级别的命令。 MySQL 8.0 事务全面讲解 一、事务的核心概念(ACID) 事务是…...

《Docker》架构

文章目录 架构模式单机架构应用数据分离架构应用服务器集群架构读写分离/主从分离架构冷热分离架构垂直分库架构微服务架构容器编排架构什么是容器,docker,镜像,k8s 架构模式 单机架构 单机架构其实就是应用服务器和单机服务器都部署在同一…...

GraphQL 实战篇:Apollo Client 配置与缓存

GraphQL 实战篇:Apollo Client 配置与缓存 上一篇:GraphQL 入门篇:基础查询语法 依旧和上一篇的笔记一样,主实操,没啥过多的细节讲解,代码具体在: https://github.com/GoldenaArcher/graphql…...

webpack面试题

面试题:webpack介绍和简单使用 一、webpack(模块化打包工具)1. webpack是把项目当作一个整体,通过给定的一个主文件,webpack将从这个主文件开始找到你项目当中的所有依赖文件,使用loaders来处理它们&#x…...

命令行关闭Windows防火墙

命令行关闭Windows防火墙 引言一、防火墙:被低估的"智能安检员"二、优先尝试!90%问题无需关闭防火墙方案1:程序白名单(解决软件误拦截)方案2:开放特定端口(解决网游/开发端口不通)三、命令行极速关闭方案方法一:PowerShell(推荐Win10/11)​方法二:CMD命令…...