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

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

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

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;
}


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

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

分享给朋友:

相关文章

【数论】杨辉三角

【数论】杨辉三角

一、起源 杨辉三角,是二项式系数在三角形中的一种几何排列。在欧洲,这个表叫做帕斯卡三角形。帕斯卡(1623----1662)是在1654年发现这一规律的,比杨辉要迟393年,比贾宪迟600年。杨辉三角...

【算法】分治算法

前言所谓分治算法就是指分而治之,即将较大规模的问题分解成几个较小规模的问题,通过对较小问题的求解达到对整个问题的求解。当我们将问题分解成两个较小问题求解时的分治方法称为二分法。比如,我们玩过最简单的猜...

【算法】前缀和与差分(3)二维数组前缀和

【算法】前缀和与差分(3)二维数组前缀和

0.前言前面的一篇文章,介绍了一维数组的前缀和,这篇文章中,介绍一下二维数组的前缀和1.定义二维数组的前缀和就是按照二维数组求和。公式如下:那二维前缀和中一个f[i][j]表示的意思就是以(1,1)为...

【STL】二分查找函数(算法)—binary_search

【说明】binary_search() 实现了一个二分查找算法。它会在前两个参数指定范围内搜索等同于第三个参数的元素。指定范围的迭代器必须是正向迭代器而且元素必须可以使用 < 运算符来比较。这个...

C++链表结构——单链表

0.前言存储方式分为顺序存储结构和链式存储结构。顺序存储结构的优缺点:优点:可以通过一个简单的公式随机存取表中的任一元素,逻辑关系上相邻的两个元素在物理位置上也是相邻的,且很容易找到前驱跟后继元素。缺...

C++读取磁盘文件

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