Visual C++鼠标画线操作

跟随鼠标轨迹划线

//编译环境:Visual C++ 6.0,EasyX_20190219(beta)
#include
#include
#include
  
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++鼠标画线操作_第1张图片
鼠标点击两点画直线

//编译环境:Visual C++ 6.0,EasyX_20190219(beta)
#include 
#include 
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处进行重置
                }
            }
        }
    }
}

效果演示如下:
Visual C++鼠标画线操作_第2张图片

你可能感兴趣的:(C++)