关于鼠标轨迹画线

跟随鼠标轨迹画线

//编译环境:Visual C++ 6.0,EasyX_20190219(beta)
#include<stdio.h>
#include<graphics.h>
#include<conio.h>
void pen()
 {
     int x0, y0;  
     MOUSEMSG m;        // 定义鼠标消息
     while (true)
     {
     flag:                //重置开始
         m = GetMouseMsg();// 获取一次鼠标消息
         switch (m.uMsg)

         {
         case WM_LBUTTONDOWN:x0 = m.x; y0 = m.y;    //鼠标第一次按下时,得到坐标(x0,y0)
             while (true)
             {
                 m = GetMouseMsg();// 获取一条鼠标消息
                 line(x0, y0, m.x, m.y);
                 x0 = m.x; y0 = m.y;
                 switch (m.uMsg)
                 {
                 case WM_LBUTTONUP:
                     goto flag;   //跳回到flag处进行重置
                     break;     
                 }
             }
             break;   
         }
     }
 } 
void main()
{        
    initgraph(640, 480); 
	setcolor(YELLOW);
    MOUSEMSG m;   
	while(true)
	   {pen();}
}

效果演示如下:(想画啥就画啥,是不是很自由!)
在这里插入图片描述
鼠标点击两点画线

//编译环境:Visual C++ 6.0,EasyX_20190219(beta)
#include <stdio.h>
#include <graphics.h>
void  twopiont();    
void main()
{        
    initgraph(640, 480);    //初始化图形界面,窗口分辨率设置为640*480
    MOUSEMSG p; //定义一个鼠标的结构体 
	setcolor(YELLOW);
	//鼠标按下则开始运行函数
	 while (true)
    {
        p = GetMouseMsg();    
        if (p.uMsg == WM_LBUTTONDOWN) twopiont();
    }

}

/*实现在两点之间画一条直线*/
 void  twopiont()        
{
    int x0, y0, x1, y1;
    MOUSEMSG m;        // 定义结构体保存鼠标消息
    while (true)
    {
    flag:                //重置开始
        m = GetMouseMsg();// 获取一次鼠标消息
        switch (m.uMsg)//判断鼠标信息类型
        {
            case WM_LBUTTONDOWN:
			x0 = m.x; y0 = m.y;    //鼠标第一次按下时,获取鼠标当前坐标(x0,y0)
			circle(x0,y0,1);
            while (true)
            {
                m = GetMouseMsg();// 再次获取一条鼠标消息
                switch (m.uMsg)
                {
                case WM_LBUTTONDOWN:
					x1 = m.x; y1 = m.y;//鼠标第二次按下时,得到坐标(x1,y1)
                    line(x0, y0, x1, y1);
					circle(x1,y1,1);
					//return;
                    goto flag;   //跳回到flag处进行重置
                }
            }
        }
    }
}

效果展示如下:

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值