#include "graphics.h"
#include "conio.h" void main(){
// 初始化界面
initgraph(, ); for (int x = ; x < ; x += ){ // 画 10 * 4 个50 * 50 的空白格子
for (int y = ; y < ; y += ){
rectangle(x, y, x + , y + );
}
}
// 画3个色板
setfillcolor(RED);
fillrectangle(, , , );
setfillcolor(BLUE);
fillrectangle(, , , );
setfillcolor(GREEN);
fillrectangle(, , , ); MOUSEMSG m;
while (){
m = GetMouseMsg(); // 获取鼠标信息
if (m.uMsg == WM_LBUTTONDOWN){ // 当鼠标左键击下
if (m.x > && m.x < && m.y > && m.y < ){
setfillcolor(RED);
}
if (m.x > && m.x < && m.y > && m.y < ){
setfillcolor(BLUE);
}
if (m.x > && m.x < && m.y > && m.y < ){
setfillcolor(GREEN);
}
} m = GetMouseMsg(); M: if (m.uMsg == WM_RBUTTONDOWN){ // 获取鼠标右键的信息
int i, j;
i = (int)(m.x / );
j = (int)(m.y / );
// 当鼠标右键点击的位子不在方格内则重新获取鼠标信息
if (i * > || j * > ){
goto M;
}
// 画鼠标右键点击的格子变为相应的颜色
fillrectangle(i * , j * , i * + , j * + );
}
}
closegraph();
}

// 鼠标消息的结构

struct MOUSEMSG
{
    UINT uMsg;      // 当前鼠标消息
    bool mkCtrl;    // Ctrl 键是否按下
    bool mkShift;   // Shift 键是否按下
    bool mkLButton; // 鼠标左键是否按下
    bool mkMButton; // 鼠标中键是否按下
    bool mkRButton; // 鼠标右键是否按下
    int x;          // 当前鼠标 x 坐标
    int y;          // 当前鼠标 y 坐标
    int wheel;      // 鼠标滚轮滚动值
};

其中,“当前鼠标消息”可能是以下值:
WM_MOUSEMOVE     鼠标移动消息
WM_MOUSEWHEEL    鼠标滚轮拨动消息
WM_LBUTTONDOWN   左键按下消息
WM_LBUTTONUP     左键弹起消息
WM_LBUTTONDBLCLK 左键双击消息
WM_MBUTTONDOWN   中键按下消息
WM_MBUTTONUP     中键弹起消息
WM_MBUTTONDBLCLK 中键双击消息
WM_RBUTTONDOWN   右键按下消息
WM_RBUTTONUP     右键弹起消息
WM_RBUTTONDBLCLK 右键双击消息

简单的鼠标操作<一个填充格子的小游戏>的更多相关文章

  1. 一个很有意思的小游戏:Dig2China

    最近通关了一个小游戏,游戏故事是这样的:一个美国小男孩想要去中国,他决定从自家后院往下挖,横穿地心去中国,期间经历了很多次失败.但是,每次尝试都能收获一批钱,用这些钱升级钻地机,调整自己的工具,终于在 ...

  2. HTML5存储(带一个粗糙的打怪小游戏案例)

    本地存储localStorage设置存储内容setItem(key,value) localStorage.setItem('leo','23'); 更新存储内容对象[key]=value对象.key ...

  3. 一个打砖块的小游戏1.0 KILL THE BLOCKS !

    /******************************************** * 程序名称:MR.DUAN 的打砖块(KILL THE BLOCKS !) * 作 者:WindAutum ...

  4. 一个控制台贪吃蛇小游戏(wsad控制移动)

    /******************************************** * 程序名称:MR.DUAN 的贪吃蛇游戏(链表法) * 作 者:WindAutumn <flutti ...

  5. oracle常见为题汇总,以及一个简单数据连接操作工厂

    本人软件环境:win8.1 64位操作系统,vs2013,安装好了与oracle数据库对应的客户端         连接oracle数据库.以及操作数据库 1.使用IIS建立网站,浏览网页时候,提示“ ...

  6. selenium中元素操作之简单的鼠标、键盘操作(三)

    1.鼠标操作导入类:ActionChains --鼠标的操作形成一连串的动作链,由selenium的ActionChains类来完成模拟鼠标操作手表操作的过程:1.鼠标的操作,先放到一个列表中2.利用 ...

  7. 分享:计算机图形学期末作业!!利用WebGL的第三方库three.js写一个简单的网页版“我的世界小游戏”

    这几天一直在忙着期末考试,所以一直没有更新我的博客,今天刚把我的期末作业完成了,心情澎湃,所以晚上不管怎么样,我也要写一篇博客纪念一下我上课都没有听,还是通过强大的度娘完成了我的作业的经历.(当然作业 ...

  8. 8天掌握EF的Code First开发系列之2 简单的CRUD操作

    本文出自8天掌握EF的Code First开发系列,经过自己的实践整理出来. 本篇目录 创建控制台项目 根据.Net中的类来创建数据库 简单的CRUD操作 数据库模式更改介绍 本章小结 本人的实验环境 ...

  9. WPF 中模拟键盘和鼠标操作

    转载:http://www.cnblogs.com/sixty/archive/2009/08/09/1542210.html 更多经典文章:http://www.qqpjzb.cn/65015.ht ...

随机推荐

  1. VMware 下 Ubuntu 18.04 登录框消失解决

    问题:ubuntu18卡在登陆界面,但是没有出现选择登陆用户的框,只有紫色屏幕 解决方法:参考VMware 下 Ubuntu 18.04 登录框消失解决记录

  2. 《sicp》模块化程序设计 笔记

    <sicp>模块化程序设计 2.2.3 序列作为一种约定界面 学习笔记 这节中,讲述了一种模块化的程序设计思想,也就是将程序设计为如同信号处理过程一样,采用级联的方式将程序各个部分组合在一 ...

  3. html5的figure/figcaption讲解及实例

    html5的figure/figcaption讲解及实例 一.总结 一句话总结: figure元素:用来包着媒体资源,比如图片图表:是一个[媒体组合元素],也就是对其他的媒体元素进行组合,比如:图像. ...

  4. Guided Hacking DLL Injector 3.3

    Guided Hacking DLL Injector 3.3 https://guidedhacking.com/resources/guided-hacking-dll-injector.4/ I ...

  5. Tensorflow 2 模型默认保存路径

    Tensorflow 2 模型默认保存路径 商务合作,科技咨询,版权转让:向日葵,135-4855__4328,xiexiaokui#qq.com 保存: import datetime now=da ...

  6. Socket通信(1):搭建开发环境

    一. 准备工具 1. mac环境下的VMware Fusion, 下载地址:https://www.newasp.net/soft/462096.html 2. ubuntu 14.04 LTS, 不 ...

  7. mysql的备份与还原,安装(window)

    之前一直使用的navicat的自动的备份功能.但是在使用navicat的还原功能时,贼慢. 今天要做的是window服务器上将mysql单个数据库备份.然后还原到我的mac笔记本上. 本来以为很快的, ...

  8. Docs-.NET-C#-指南-语言参考-预处理器指令:#pragma checksum(C# 参考)

    ylbtech-Docs-.NET-C#-指南-语言参考-预处理器指令:#pragma checksum(C# 参考) 1.返回顶部 1. #pragma checksum(C# 参考) 2015/0 ...

  9. flutter PopupMenuButton弹出式菜单列表

    import 'package:flutter/material.dart'; class PopupMenuButtonDemo extends StatefulWidget { @override ...

  10. Vue中的路由 以及默认路由跳转

    https://router.vuejs.org/ vue路由配置: 1.安装 npm install vue-router --save / cnpm install vue-router --sa ...