2016-03-09 36 views
-1

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

#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编译器(代码块)

+0

我不知道我明白了。你想在点击时闪烁的文本光标移动到你的鼠标光标吗?如果是这样的话,我没有看到监视Enter键的键盘输入的重点......你需要做的是一个Windows事件回调来捕捉窗口上的mouseClick事件,而且你肯定不需要多线程为了这。 – Loomchild

+0

看起来像微软Windows。通常,您可能没有窗口或鼠标(例如,通过SSH连接到Linux服务器时)。 – MSalters

回答

0

(假设于Microsoft Windows)

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

0

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

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

对不起,我现在没有一个例子。

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