C 控制台游標與滑鼠的操作

2021-07-30 06:00:20 字數 2496 閱讀 8323

對於游標的操作

void hidecursor(int n) /*隱藏游標*/

; setconsolecursorinfo(getstdhandle(std_output_handle),&cursor_info);

} //n default 0

void gotoxy(int x,int y) //將游標移到(x,y)

有關滑鼠的操作

有關滑鼠的操作是由函式readconsoleinput讀取的。

input_record inrec;

dword res;

handle hinput = getstdhandle(std_input_handle); /* 獲取標準輸入裝置控制代碼*/

readconsoleinput(hinput, &inrec, 1, &res);

typedef

struct _input_record event;

} input_record,*pinput_record;

上述由input_record定義inrec是乙個結構體,結構體中有乙個資料叫做eventtype

可以先判斷inrec.eventtype == mouse_event

判斷成功後 input_record mouserec = &inrec;

typedef

struct _mouse_event_record mouse_event_record;

1.滑鼠按鍵狀態碼(dwbuttonstate)

from_left_1st_button_pressed 最左邊按鍵

rightmost_button_pressed 最右邊按鍵

from_left_2nd_button_pressed 左起第二個按鍵

from_left_3rd_button_pressed 左起第三個按鍵

from_left_4th_button_pressed 左起第四個按鍵

2. 事件狀態碼(dweventflag)

double_click 雙擊

mouse_moved 移動

mouse_wheeled 滾輪滾動(只適用於windows 2000/xp)

進而可以進行一系列的判斷:

if(mouserec.event

.mouseevent

.dwbuttonstate==from_left_1st_button_pressed)

}

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 = ;

typedef

struct _console_screen_buffer_info console_screen_buffer_info,*pconsole_screen_buffer_info;

//coord           crpos, crhome = ;  

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)

closehandle(hout);  // 關閉標準輸出裝置控制代碼    

closehandle(hin); // 關閉標準輸入裝置控制代碼

if(inrec.eventtype == mouse_event && inrec.event

.mouseevent

.dwbuttonstate == from_left_1st_button_pressed) //滑鼠左鍵

c c 控制台游標的相關操作

謝謝合作 命令列的游標 consolecursor 其實就是乙個另類的插入符 caret 插入符是什麼呢?當你在記事本打字的時候,那個一閃一閃的豎線就叫做插入符。插入符的作用有多大呢?沒有了插入符,假如你正在輸入第二十個字,突然發現第乙個字打錯了,那麼你得把正確的十九個字和錯誤的第乙個字全刪了,再把...

windows控制台游標控制

分步閱讀 控制台的游標具有兩個屬性 dwsize 高度,bvisible 是否顯示。具體步驟 1.得標準輸出裝置控制代碼getstdhandle 因為游標是在標準輸出裝置上顯示 2.獲取控制台游標資訊getconsolecursorinfo 可以跳過 3.設定控制台游標資訊setconsolecur...

控制台介面控制(十) 讀取滑鼠操作

我在看到這一章之前一直不知道控制台也能通過滑鼠來操作。控制台的滑鼠操作需要得到滑鼠位置資訊,左右鍵資訊,單雙擊等等。效果 當滑鼠在控制台範圍內的時候,第一行會顯示滑鼠的位置 左鍵單擊在滑鼠當前位置寫下乙個a,右鍵單擊在滑鼠當前位置寫下乙個a 左鍵雙擊控制台退出。相關資訊 與讀取鍵盤資訊類似,讀取滑鼠...