• 光标移动以及鼠标信息捕捉


    此代码是将光标跳到指定位置。

    gotoxy(x,y) x代表行,y代表列,下标是从0开始的

    
    #include<iostream>
    #include<windows.h>
    #include<stdio.h>
    #include<string.h>
    
    
    using namespace std;
    
    
    void gotoxy(int x,int y)//位置函数
    {
        COORD pos;
        pos.X=y;
        pos.Y=x;
        SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),pos);
    }
    int main()
    {
        cout<<"sssssssss"<<endl;
        gotoxy(0,1);
        getchar();
        return 0;
    }



    2.鼠标信息捕捉:

           在控制台程序中获取鼠标事件。


    下面给出一个小程序


    <span style="font-size:14px;">#include <windows.h>
    #include <stdio.h>
    
    int main(void)
    {
        // 获取标准输入输出设备句柄
        HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);
        HANDLE hIn = GetStdHandle(STD_INPUT_HANDLE);
        CONSOLE_SCREEN_BUFFER_INFO bInfo;
        INPUT_RECORD	mouseRec;
        DWORD			res;
        COORD			crPos, crHome = {0, 0};
        printf("[Cursor Position] X: %2lu  Y: %2lu
    ", 0, 0);	// 初始状态
        while (1)
        {
            ReadConsoleInput(hIn, &mouseRec, 1, &res);
            if (mouseRec.EventType == MOUSE_EVENT)
            {
                if (mouseRec.Event.MouseEvent.dwButtonState==FROM_LEFT_1ST_BUTTON_PRESSED)
                {
                    if (mouseRec.Event.MouseEvent.dwEventFlags == DOUBLE_CLICK)
                    {
                        break;	// 左键双击 退出循环
                    }
                }
                crPos = mouseRec.Event.MouseEvent.dwMousePosition;
                GetConsoleScreenBufferInfo(hOut, &bInfo);
                SetConsoleCursorPosition(hOut, crHome);
                printf("[Cursor Position] X: %2lu  Y: %2lu", crPos.X, crPos.Y);
                SetConsoleCursorPosition(hOut, bInfo.dwCursorPosition);
                switch (mouseRec.Event.MouseEvent.dwButtonState)
                {
                case FROM_LEFT_1ST_BUTTON_PRESSED:			// 左键 输出A
                    FillConsoleOutputCharacter(hOut,'1', 1, crPos, &res);
                    break;		// 如果使用printf输出,则之前需要先设置光标的位置
                case RIGHTMOST_BUTTON_PRESSED:				// 右键 输出a
                    FillConsoleOutputCharacter(hOut,'2', 1, crPos, &res);
                    break;
                default:
                    break;
                }
            }
        }
        CloseHandle(hOut);  // 关闭标准输出设备句柄
        CloseHandle(hIn);   // 关闭标准输入设备句柄
        return 0;
    }</span><span style="font-size:24px;">
    </span>



  • 相关阅读:
    FORM内置系统变量
    linux简单命常用令
    详解EBS接口开发之库存事务处理-物料批次导入
    TRIZ系列-创新原理-5-合并原理
    《Master Opencv...读书笔记》非刚性人脸跟踪 IV (终)
    Echarts折线图
    Redis命令学习-SortedSet(有序集合)
    tky项目第③个半月总结
    Torrent 文件图文解析
    ofbiz SSO 单点登录
  • 原文地址:https://www.cnblogs.com/coded-ream/p/7207981.html
Copyright © 2020-2023  润新知