当前位置:首页 > C++知识 > 正文内容

【C++图形化编程】鼠标函数及鼠标画板

亿万年的星光3年前 (2021-10-23)C++知识1821

0.前言

这篇文章简单介绍一下利用鼠标画图的程序

#include<graphics.h>
#include<conio.h>
int main(){
	initgraph(640,480);
	MOUSEMSG m;  //定义鼠标消息
	while(1){
		//获取一条消息
		m=GetMouseMsg();
		if(m.uMsg==WM_MOUSEMOVE){
			putpixel(m.x,m.y,WHITE); //鼠标移动时画小白点
		}
	
	}
	return 0;
}


其中,最主要的是putpixel函数。头文件graphics.h包含putpixel()函数,该函数在指定颜色的位置(x,y)处绘制像素。

比如:

    putpixel(85, 35, GREEN); 
    putpixel(30, 40, RED); 
    putpixel(115, 50, YELLOW); 
    putpixel(135, 50, CYAN); 
    putpixel(45, 60, BLUE); 
    putpixel(20, 100, WHITE); 
    putpixel(200, 100, LIGHTBLUE); 
    putpixel(150, 100, LIGHTGREEN); 
    putpixel(200, 50, YELLOW); 
    putpixel(120, 70, RED);

我们可以通过这个画出想要的图形。


如何实现,按鼠标按键画出图形呢


代码:

#include<graphics.h>
#include<conio.h>
int main(){
	initgraph(640,480);
	MOUSEMSG m;  //定义鼠标消息
	while(1){
		//获取一条消息
		m=GetMouseMsg();
		if(m.uMsg==WM_MOUSEMOVE){
			putpixel(m.x,m.y,WHITE); //鼠标移动时画小白点
		}
		else if(m.uMsg==WM_LBUTTONDOWN){
			rectangle(m.x-5,m.y-5,m.x+5,m.y+5);
		}
	
	}
	return 0;
}


效果图:

image.png


继续实现,当按下鼠标右键的时候,画一个圆

#include<graphics.h>
#include<conio.h>
int main(){
	initgraph(640,480);
	MOUSEMSG m;  //定义鼠标消息
	while(1){
		//获取一条消息
		m=GetMouseMsg();
		if(m.uMsg==WM_MOUSEMOVE){
			putpixel(m.x,m.y,WHITE); //鼠标移动时画小白点
		}
		else if(m.uMsg==WM_LBUTTONDOWN){
			rectangle(m.x-5,m.y-5,m.x+5,m.y+5);
		}
		else if(m.uMsg == WM_RBUTTONUP){
			circle(m.x,m.y,10);
		}
	
	}
	return 0;
}


扫描二维码推送至手机访问。

版权声明:本文由青少年编程知识记录发布,如需转载请注明出处。

分享给朋友:

相关文章

如何判断回文数/回文串

所谓回文,就是从左往右读和从右往左读都是一样的,这样的数字或者字符称为回文数/回文字符。做题的时候经常能看到判断回文操作。判断回文的一般有两种,一种是数字类型,一种是字符类型。两种分别介绍一下。一、回...

【数据结构】并查集1

【数据结构】并查集1

1.引入    对于一个集合S={a1, a2, …, an-1, an},我们还可以对集合S进一步划分: S1,S2,…,Sm-1,Sm,我们希望能够快速确定...

C++读取磁盘文件

0.前言简单介绍一下C++读取文件的基本操作。关键技术:freopen() 文件的打开函数 FILE *fp fp=fopen(文件名,使用文件方式) 例如: fp...

2021 年青岛市程序设计竞赛试题(小学组)决赛

2021 年青岛市程序设计竞赛试题(小学组)决赛

1.方程求解【描述】输入正整数 a,b,c。求有多少组 x 和 y 满足 a*x+b*y=c 。x 和 y 都是非负整数。【输入】一行,包含三个正整数 a,b,c,两个整数之间用单个空格隔开。【输出】...

C++小项目——实时钟表

C++小项目——实时钟表

0.前言在很多游戏中,我们要使用时间,这个时间一个是系统当前的时间,一个是服务器给你的时间。这篇文章我们尝试做一个模拟时钟。效果图如下1.任务分解1.首先我们尝试使用easyx来画一个。基本框架如下:...

【数据结构】栈—括号匹配检验

【数据结构】栈—括号匹配检验

【题目描述】假设表达式中允许包含两种括号:圆括号和方括号,其嵌套的顺序随意,如([ ]())或[  (  [  ] [  ] ) ] 等为正确的匹配,[&nbs...