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

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

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

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


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

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

分享给朋友:

相关文章

STL入门——容器1:vector (不定长度数组)

一、定义     vector是一个不定长度数组。不仅如此,它把一些常用操作“封装”在了 vector 类型内部。    ...

【数论】龟速乘

【数论】龟速乘

我们前面一篇文章学习了快速幂。它可以解决两类问题:a^b,(a^b)%c对于第一类,我们可以使用递归法或者迭代法可以求出,为了计算的快,我们可以引入位运算操作,但是目前来看,无论怎么优化都不能超过lo...

【题解】围圈报数(约瑟夫问题)

【题解】围圈报数(约瑟夫问题)

【题目描述】有n个人依次围成一圈,从第1个人开始报数,数到第m个人出列,然后从出列的下一个人开始报数,数到第m个热呢又出列,... ,如此反复到所有的人全部出列为止。设n个人的编号分别为1,2,......

DEVC++中的快捷键

快捷键可以帮我们加快速度,下面介绍一下我们经常用的快捷键。 Ctrl+A   全选Ctrl +C   复制Ctrl +V   粘贴...

【题解】小X玩游戏

【题目描述】小X喜欢玩游戏。  这天,小X觉得传统的游戏都玩腻了,自己随手在草稿纸上画了一行N个格子作为棋盘, 制定了如下规则:格子从左到右依次编号为1到N,玩家初始位于格子1,初...

【题解】采药的最短路径

【题目描述】少年李逍遥的婶婶病了,王小虎介绍他去一趟仙灵岛,向仙女姐姐要仙丹救婶婶。孝顺的李逍遥闯进了仙灵岛,克服了千险万难来到岛的中心,发现仙药摆在了迷阵的深处。迷阵由M×N个方格组成,有的方格内有...