我在看到這一章之前一直不知道控制台也能通過滑鼠來操作。控制台的滑鼠操作需要得到滑鼠位置資訊,左右鍵資訊,單雙擊等等。效果
當滑鼠在控制台範圍內的時候,第一行會顯示滑鼠的位置;左鍵單擊在滑鼠當前位置寫下乙個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...