2016-03-09 115 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」)沒有任何變種,實際上並不需要。