且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

控制台鼠标输入不起作用

更新时间:2023-02-19 19:30:22

我有类似问题 。而且问题似乎是由于在Windows10的控制台Windows属性的设置中启用了快速编辑模式 选项引起的。我已经复制并粘贴了您指定的MCVE代码,但在Windows10计算机上也无法正常运行。但是,它按照 Microsoft有关禁用快速编辑模式的文档。在启用窗口&之前,我首先做了(em>禁用 这件事(!)。鼠标输入事件,方法是通过以下方式在您的代码中包含/添加快速编辑模式-禁用代码行

I had similar problem on my Windows-10 machine. And the problem seemingly was being caused by 'Quick Edit Mode' option being enabled in settings of 'Console Windows Properties' on Windows10. I have copied and pasted your given MCVE-code, it wasn't working on my windows10 machine either. But, it started working after i disabled 'Quick Edit Mode' as per Microsoft's docs about disabling 'Quick Edit Mode'. I did this 'disabling' thing first(!), before enabling the window & mouse input events, by including/adding the 'Quick Edit Mode'-disabling-code-lines to your code in following manner:

    /* 
       Step-1:
       Disable 'Quick Edit Mode' option
    */
       fdwMode = ENABLE_EXTENDED_FLAGS;
       if (! SetConsoleMode(hStdin, fdwMode) )
           MyErrorExit("SetConsoleMode");
    /* 
       Step-2:
       Enable the window and mouse input events,
       after you have already applied that 'ENABLE_EXTENDED_FLAGS'
       to disable 'Quick Edit Mode'
    */
       fdwMode = ENABLE_WINDOW_INPUT | ENABLE_MOUSE_INPUT;
       if (!SetConsoleMode(hStdin, fdwMode))
           MyErrorExit("SetConsoleMode");

在包含上述内容之后,您的程序开始运行,并且控制台光标通过您的 gotoxy()函数,按您提供的MCVE代码的预期,在我的 Windows10控制台上!

After this above-quoted inclusion, your program started working and the Console Cursor kept following my Mouse pointer via your gotoxy() function, as intended by your provided MCVE-code, on my Windows10-Console!