MFC文档(SDI)应用:绘图程序(画圆、画线、鼠标事件)

2023-10-08 18:18

本文主要是介绍MFC文档(SDI)应用:绘图程序(画圆、画线、鼠标事件),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

要求

1、 在客户区输出一条顺时针45度的直线、一个正方形、一个大圆;

2、 在客户区输出一个图标;

3、 当按下鼠标左键时,将以鼠标坐标为圆心画直径为20个单位的小圆;


  1. 首先设置两个变量,用来保存颜色和线宽,这样就可是通过程序设置圆或者线条的颜色和宽度了。(添加在view类的构造函数中)

COLORREF color;
int penwidth;</span>

    2. 画45度直线的实现代码如下:

CClientDC dc(this);
CPen pen(PS_SOLID,penwidth,color);
dc.SelectObject(&pen);
dc.MoveTo(0,0);
dc.LineTo(400,400);


    3. 画矩形的代码实现如下:
CClientDC dc(this);
CPen pen(PS_SOLID,penwidth,color);
dc.SelectObject(&pen);
dc.Rectangle(200,200,400,400);

    4. 画圆的实现代码如下:(注释掉的部分为CPen填充矩形,未注释的是用CBrush填充矩形)

CClientDC dc(this);
//CPen pen(PS_SOLID,penwidth,color);CBrush brush=RGB(255,255,0);
CBrush* pbr=dc.SelectObject(&brush);dc.SelectObject(&brush);
dc.Ellipse(300,300,400,400);
// TODO: Add your command handler code here
//CDC* pdc=GetDC();
//pdc->Ellipse(300,300,400,400);


     5. 在客户区输出一个图标的实现代码如下:(提前通过编译器将程序导入)

CDC* pdc=GetDC();
BITMAP bitmap;
CBitmap bm;
bm.LoadBitmap(IDB_BITMAP1);
bm.GetBitmap(&bitmap);
CClientDC dc(this);
dc.CreateCompatibleDC(pdc);
dc.SelectObject(&bm);
pdc->BitBlt(320,30,180,120,&dc,80,50,SRCCOPY);

      6. 当按下鼠标左键时,将以鼠标坐标为圆心画直径为20个单位的小圆,实现代码如下:(首先添加鼠标左键按下的响应事件,然后加入如下代码)

CClientDC dc(this);
CPen pen(PS_SOLID,penwidth,color);
dc.SelectObject(&pen);
dc.Ellipse(point.x-10,point.y-10,point.x+10,point.y+10);

运行截图如下:



参考博客:用MFC “菜单响应事件” 实现绘图


本程序的下载地址:点击下载   http://download.csdn.net/detail/rl529014/9498564

这篇关于MFC文档(SDI)应用:绘图程序(画圆、画线、鼠标事件)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/167133

相关文章

C#实现将Office文档(Word/Excel/PDF/PPT)转为Markdown格式

《C#实现将Office文档(Word/Excel/PDF/PPT)转为Markdown格式》Markdown凭借简洁的语法、优良的可读性,以及对版本控制系统的高度兼容性,逐渐成为最受欢迎的文档格式... 目录为什么要将文档转换为 Markdown 格式使用工具将 Word 文档转换为 Markdown(.

python编写朋克风格的天气查询程序

《python编写朋克风格的天气查询程序》这篇文章主要为大家详细介绍了一个基于Python的桌面应用程序,使用了tkinter库来创建图形用户界面并通过requests库调用Open-MeteoAPI... 目录工具介绍工具使用说明python脚本内容如何运行脚本工具介绍这个天气查询工具是一个基于 Pyt

Ubuntu设置程序开机自启动的操作步骤

《Ubuntu设置程序开机自启动的操作步骤》在部署程序到边缘端时,我们总希望可以通电即启动我们写好的程序,本篇博客用以记录如何在ubuntu开机执行某条命令或者某个可执行程序,需要的朋友可以参考下... 目录1、概述2、图形界面设置3、设置为Systemd服务1、概述测试环境:Ubuntu22.04 带图

详解如何使用Python构建从数据到文档的自动化工作流

《详解如何使用Python构建从数据到文档的自动化工作流》这篇文章将通过真实工作场景拆解,为大家展示如何用Python构建自动化工作流,让工具代替人力完成这些数字苦力活,感兴趣的小伙伴可以跟随小编一起... 目录一、Excel处理:从数据搬运工到智能分析师二、PDF处理:文档工厂的智能生产线三、邮件自动化:

Python实现自动化Word文档样式复制与内容生成

《Python实现自动化Word文档样式复制与内容生成》在办公自动化领域,高效处理Word文档的样式和内容复制是一个常见需求,本文将展示如何利用Python的python-docx库实现... 目录一、为什么需要自动化 Word 文档处理二、核心功能实现:样式与表格的深度复制1. 表格复制(含样式与内容)2

Python使用Tkinter打造一个完整的桌面应用

《Python使用Tkinter打造一个完整的桌面应用》在Python生态中,Tkinter就像一把瑞士军刀,它没有花哨的特效,却能快速搭建出实用的图形界面,作为Python自带的标准库,无需安装即可... 目录一、界面搭建:像搭积木一样组合控件二、菜单系统:给应用装上“控制中枢”三、事件驱动:让界面“活”

Python程序打包exe,单文件和多文件方式

《Python程序打包exe,单文件和多文件方式》:本文主要介绍Python程序打包exe,单文件和多文件方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录python 脚本打成exe文件安装Pyinstaller准备一个ico图标打包方式一(适用于文件较少的程

如何确定哪些软件是Mac系统自带的? Mac系统内置应用查看技巧

《如何确定哪些软件是Mac系统自带的?Mac系统内置应用查看技巧》如何确定哪些软件是Mac系统自带的?mac系统中有很多自带的应用,想要看看哪些是系统自带,该怎么查看呢?下面我们就来看看Mac系统内... 在MAC电脑上,可以使用以下方法来确定哪些软件是系统自带的:1.应用程序文件夹打开应用程序文件夹

Maven项目中集成数据库文档生成工具的操作步骤

《Maven项目中集成数据库文档生成工具的操作步骤》在Maven项目中,可以通过集成数据库文档生成工具来自动生成数据库文档,本文为大家整理了使用screw-maven-plugin(推荐)的完... 目录1. 添加插件配置到 pom.XML2. 配置数据库信息3. 执行生成命令4. 高级配置选项5. 注意事

Python程序的文件头部声明小结

《Python程序的文件头部声明小结》在Python文件的顶部声明编码通常是必须的,尤其是在处理非ASCII字符时,下面就来介绍一下两种头部文件声明,具有一定的参考价值,感兴趣的可以了解一下... 目录一、# coding=utf-8二、#!/usr/bin/env python三、运行Python程序四、