源码:

#include<windows.h>
HANDLE hInput;
/* 获取标准输入设备句柄 */
INPUT_RECORD inRec;
/* 返回数据记录 */
DWORD numRead;
/* 返回已读取的记录数 */
int Y,X;
/* X和Y的坐标 */
int input()
{
    while(1)
    {
        COORD pos = {0,0};
        ReadConsoleInput(hInput, &inRec, 1, &numRead);
        pos = inRec.Event.MouseEvent.dwMousePosition;
        Y=(int)pos.Y;
        X=(int)pos.X;

if (inRec.EventType == MOUSE_EVENT && inRec.Event.MouseEvent.dwEventFlags == RIGHTMOST_BUTTON_PRESSED)
            /* 鼠标左键双击 */
            return 1;

if (inRec.EventType == MOUSE_EVENT && inRec.Event.MouseEvent.dwButtonState == RIGHTMOST_BUTTON_PRESSED)
            /* 鼠标右键单击 */
            return 2;

if (inRec.EventType == MOUSE_EVENT && inRec.Event.MouseEvent.dwButtonState == FROM_LEFT_1ST_BUTTON_PRESSED)
                /* 鼠标左键单击 */
            {
                if(X>1&&X<80&&Y==0)
                    /* 第一行 */
                    return 3;
                else if(X>1&&X<80&&Y==1)
                    /* 第二行 */
                    return 4;
            }
    }
}

void HideCursor()
//隐藏控制台的光标
{
    CONSOLE_CURSOR_INFO cursor_info = {1, 0};
    SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cursor_info);
}

int main()
{
    int rt;
    HideCursor();
    //隐藏控制台的光标
    HWND hwnd=FindWindow("ConsoleWindowClass",NULL);
    /* 控制台窗口句柄 */
    hInput = GetStdHandle(STD_INPUT_HANDLE);
    /* 输入设备句柄 */
    while(1)
    {
        ReadConsoleInput(hInput, &inRec, 1, &numRead);
        /* 读取1个输入事件 */
        switch(inRec.EventType)
        {
        
        case MOUSE_EVENT:
            {
                rt=input();

switch(rt)
                {
                    case 1: MessageBox(hwnd,"双击操作","111",0); break;
                    case 2: MessageBox(hwnd,"右键单击","222",0); break;
                    case 3: MessageBox(hwnd,"左键单击第一行","333",0); break;
                    case 4: MessageBox(hwnd,"左键单击第二行","444",0); break;
                }
            }
            break;
        }
    }
}

运行:

win32控制台消息机制的更多相关文章

  1. Win32窗口消息机制 x Android消息机制 x 异步执行

    如果你开发过Win32窗口程序,那么当你看到android代码到处都有的mHandler.sendEmptyMessage和 private final Handler mHandler = new ...

  2. Win32消息机制

    1. 消息机制     过程驱动:程序是按照我们预先定义好的顺序执行,每执行一步,下一步都已经按照预定的顺序继续执行,直到程序结束.       事件驱动:程序的执行顺序是无序的.某个时间点所执行的代 ...

  3. WPF的消息机制

    前言 谈起“消息机制”这个词,我们都会想到Windows的消息机制,系统将键盘鼠标的行为包装成一个Windows Message,然后系统主动将这些Windows Message派发给特定的窗口,实际 ...

  4. WPF的消息机制(一)- 让应用程序动起来

    原文:WPF的消息机制(一)- 让应用程序动起来 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/powertoolsteam/article/det ...

  5. Win32编程中如何处理控制台消息

    这篇文章讨论如何处理所有的控制台消息. 第一步,首先要安装一个事件钩子,也就是说要建立一个回调函数.调用Win32 API,原型如下: BOOL SetConsoleCtrlHandler(PHAND ...

  6. win32程序之窗口程序,以及消息机制

    win32程序值窗口程序,以及消息机制 一丶简介 通过上一讲.我们了解了窗口其实是绘制出来的.而且是不断绘制的过程. 所以窗口的本质是绘制. 但是我们现在看到的窗口程序.都可以点击关闭按钮. 使用鼠标 ...

  7. 【转】WIN32 控制台程序

    http://blog.csdn.net/houmin0036/article/details/7702236 win32控制台项目指在32位Windows命令提示符(即所谓的dos)环境下运行的应用 ...

  8. SetConsoleCtrlHandler 处理控制台消息

    转载自csdn:http://blog.csdn.net/zhongguoren666/article/details/8770615   SetConsoleCtrlHandler 处理控制台消息 ...

  9. Qt消息机制和事件

    Qt消息机制和事件 1 事件 事件(event)是由系统或者 Qt 本身在不同的时刻发出的.当用户按下鼠标.敲下键盘,或者是窗口需要重新绘制的时候,都会发出一个相应的事件.一些事件在对用户操作做出响应 ...

随机推荐

  1. GO To Definition的背后操作【VS2015 C#】

    使用VS开发U3D项目时,去察看某个变量的声明,比如某组件的gameObject变量,会看到如下代码 一看似乎有点晕,这代码什么意思啊,就一个 public GameObject gameObject ...

  2. FTP登录/目录破解

    l临时简单的验证,还需要优化... 登录: import ftplib usr = open('usr.txt','r') ftp = ftplib.FTP("*************&q ...

  3. win7(X64)系统下cuda7.5和VS2013的配置

    &1 安装 cuda7.5文件:链接:http://pan.baidu.com/s/1bU2zIQ 密码:nvyw &2 环境变量 注意:CUDA_PATH是安装好cuda7.5之后会 ...

  4. chrome浏览器插件启动本地应用程序

    chrome浏览器插件启动本地应用程序 2014-04-20 00:04:30|  分类: 浏览器插件|举报|字号 订阅     下载LOFTER我的照片书  |     chrome的插件开发这里就 ...

  5. 接收content-type:multipart/form-data类型的参数

    一.问题描述 最近在写接口程序,该接口需要与其他公司的程序对接.对方发送content-type:multipart/form-data类型的参数,结果通过request.getParameter(p ...

  6. 20145303 20145339 《信息安全系统设计基础》 实验五 简单嵌入式WEB服务器实验

    20145303 20145339 <信息安全系统设计基础> 实验五 简单嵌入式WEB服务器实验 实验目的与要求 1.掌握在ARM开发板实现一个简单WEB服务器的过程 2.学习在ARM开发 ...

  7. 20145314郑凯杰《信息安全系统设计基础》GDB调试32位汇编堆栈分析

    20145314郑凯杰<信息安全系统设计基础>GDB调试32位汇编堆栈分析 本篇博客将对第五周博客中的GDB调试32位汇编堆栈进行分析 首先放上以前环境配置的图: 图1: 测试代码: #i ...

  8. 需要中文版《The Scheme Programming Language》的朋友可以在此留言(内附一小段译文)

    首先给出原著的链接:http://www.scheme.com/tspl4/. 我正在持续翻译这本书,大概每天都会翻译两小时.若我个人拿不准的地方,我会附上原文,防止误导:还有些不适合翻译的术语,我会 ...

  9. 技术分析:Femtocell家庭基站通信截获、伪造任意短信

    阿里移动安全团队与中国泰尔实验室无线技术部的通信专家们一起,联合对国内运营商某型Femtocell基站进行了安全分析,发现多枚重大漏洞,可导致用户的短信.通话.数据流量被窃听.恶意攻击者可以在免费申领 ...

  10. css3动画 bug 2点

    1. .myanimate{ transition-property: left;transition-duration: .3s;transition-timing-function: ease } ...