如何在C中输入值时将光标移动到鼠标位置?

时间:2016-03-09 13:15:40

标签: c multithreading multitasking

Windows:我正在创建一个程序,它是一种文本编辑器(用于学习C)。我想将光标移动到X and Y of the mouse click position。正在使用getche()。我目前有以下代码:

#include <stdio.h>
#include<conio.h>
int main()
{
    char a;
    do{
           a=getche();
           fflush(stdin);
           printf("%c");
    }while(a!=13)
}

其中13是ASCII中的Enter键。

看一下这张图片:

Have a look at this image

我希望每当我按下控制台时,光标会跳到它的位置。

我听说可以用线程来完成。但我真的不知道怎么做。我在互联网上搜索了很多,但我从未发现任何有用的东西。

注意:我正在使用GCC编译器(代码块)

2 个答案:

答案 0 :(得分:0)

(假设Microsoft Windows)

您必须通过ReadConsoleInput()阅读鼠标事件,然后通过SetConsoleCursorPosition设置光标位置。

答案 1 :(得分:0)

在turbo c中,我曾经通过定义x86中断来使用中断例程。你可以尝试使用它。

它可以为您输入任何中断,包括按下和释放时的鼠标,以及鼠标当前位置。但是你必须先了解C中的x86中断才能使用它们。

抱歉,我现在没有一个例子。

建议:另外如果你想模仿文本编辑器,你也应该允许通过箭头移动,当你使用a = getche()时它会打印并在a中给你输入然后你使用printf(“ %c“)没有任何var,实际上并不需要。