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

2021-07-09 08:32:51 字數 1944 閱讀 4882

我在看到這一章之前一直不知道控制台也能通過滑鼠來操作。控制台的滑鼠操作需要得到滑鼠位置資訊,左右鍵資訊,單雙擊等等。效果

當滑鼠在控制台範圍內的時候,第一行會顯示滑鼠的位置;左鍵單擊在滑鼠當前位置寫下乙個a,右鍵單擊在滑鼠當前位置寫下乙個a;左鍵雙擊控制台退出。

相關資訊

與讀取鍵盤資訊類似,讀取滑鼠資訊也是通過 readconsoleinput 函式來實現,區別在判斷了 mouse_event 後,將使用 mouse_event_record:

[cpp]view plain

copy

typedefstruct_mouse_event_record  mouse_event_record;  

第乙個引數存放滑鼠的位置資訊,型別為 coord 座標型別;第二個引數(dwbuttonstate)為滑鼠的按鍵狀態,包含的值如下:

滑鼠按鍵狀態碼(dwbuttonstate)說明

from_left_1st_button_pressed

最左邊按鍵

rightmost_button_pressed

最右邊按鍵

from_left_2nd_button_pressed

左起第二個按鍵

from_left_3rd_button_pressed

左起第三個按鍵

from_left_4th_button_pressed

左起第四個按鍵

第三個引數是鍵盤控制鍵狀態,這個和上一章的內容是一樣的;最後乙個引數(dweventflag)為事件狀態:

事件狀態碼(dweventflag)說明

double_click

雙擊mouse_moved

移動mouse_wheeled

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

控制台讀取滑鼠資訊

[cpp]view plain

copy

#include 

#include 

intmain(void)    

;  printf("[cursor position] x: %2lu  y: %2lu\n", 0, 0);   // 初始狀態

while(1)  

}             

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);   // 關閉標準輸入裝置控制代碼  

return0;    

}    

控制台介面控制(一)

總述 前言 這裡所說的控制台指的是console程式設計。顯示的介面類似dos,某種程式上也很像tc裡的執行結果。是一種vc上的簡易視窗程式設計。vc 有提供window視窗程式設計,可以寫出很好看的視窗介面,可是涉及的知識點較多。如果有時候只是想測試一下某個用法,或者寫的某個函式,就很沒效率。控制...

讀取控制台輸出

在新建工程窗體中新增button1 memo1 unit unit1 inte ce uses windows,messages,sysutils,variants,classes,graphics,controls,forms,dialogs,stdctrls,extctrls type tfor...

認識控制台 控制台控制代碼 附著到控制台 關閉控制台

1.附著到乙個控制台 乙個程序可以使用 attachconsole 函式來附著到乙個控制台上,乙個程序只能附著乙個控制台。乙個控制台可以有許多程序附著到它上面,呼叫 getconsoleprocesslist 函式可以得到附著到乙個控制台的列表。2.關閉乙個控制台 程序可以使用 freeconsol...