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

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

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

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++中的逻辑与运算

样例#include<iostream> using namespace std; int main(){ cout<<(1&1)...

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

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

【题解】均分纸牌

【题目描述】有n堆纸牌,编号分别为 1,2,…, n。每堆上有若干张,但纸牌总数必为n的倍数。可以在任一堆上取若干张纸牌,然后移动。移牌规则为:在编号为1的堆上取的纸牌,只能移到编号为 2 的堆上;在...

符号与快捷键

符号与快捷键

一、键盘二、符号与快捷键1.常见符号加号:shift 加 =减号:-乘号:shift 加 8  (*)除号:/取余(模):shift 加 5    (%)【示例】#inc...

【数论】杨辉三角

【数论】杨辉三角

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

STL入门——容器3:map

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