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

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

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

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


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

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

分享给朋友:

相关文章

【高级篇】C++ 中string的用法

【高级篇】C++ 中string的用法

0.概述string是C++标准库的一个重要部分,本意是字符串,和字符数组不同的是,字符数组是通过一个一个字符模拟的字符串,而string本身就是字符串,string在处理字符串问题时,十分强大。1....

C++将数据写入磁盘文件

0.前言要求:在任意路径下新建一个文本文档,向该文档中写入数据。以'#'结束字符串的输入。关键技术:ch=fputc(ch,fp);该函数的作用是把一个字符写到磁盘文件(fp所指的磁盘...

STL入门——简单介绍

一、STL是什么?    STL(Standard Template Library)即标准模板库,是一个具有工业强度的,高效的C++程序库。它被容纳于C++标准程序库(C++ S...

STL入门——容器3:map

一、定义    Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据&nb...

CSP复赛必备,时间与空间估算

CSP复赛必备,时间与空间估算

一、时间估算       在竞赛环境中,一般运行程序的时间是1s。这要求我们尽量不要循环太多次数,一般情况下,建议将时间复杂度控制在10^8以内。 ...

NOIP/CSP-J复赛历年考点

2000计算器的改良税收与补贴乘积最大单词接龙模拟、字符串模拟字符串、动态规划广度优先bfs、字符串2001数的计数最大公约数与最小公倍数求先序排列装箱问题模拟模拟、函数二叉树贪心2002级数求和选数...