1. <ul id="0c1fb"></ul>

      <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
      <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区

      RELATEED CONSULTING
      相關(guān)咨詢
      選擇下列產(chǎn)品馬上在線溝通
      服務(wù)時(shí)間:8:30-17:00
      你可能遇到了下面的問題
      關(guān)閉右側(cè)工具欄

      新聞中心

      這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
      c語(yǔ)言鍵盤捕捉函數(shù) C語(yǔ)言鍵盤控制

      c語(yǔ)言怎么監(jiān)聽鍵盤按鍵

      在Microsoft Windows 中,鍵盤和鼠標(biāo)是兩個(gè)標(biāo)準(zhǔn)的用戶輸入源,在一些交疊的操作中通常相互補(bǔ)充使用。當(dāng)然,鼠標(biāo)在今天的應(yīng)用程序中比10年前使用得更為廣泛。甚至在一些應(yīng)用程序中,我們更習(xí)慣于使用鼠標(biāo),例如在游戲、畫圖程序、音樂程序,以及Web創(chuàng)覽器等程序中就是這樣。然而,我們可以不使用鼠標(biāo),但絕對(duì)不能從一般的PC中拆掉鍵盤。

      創(chuàng)新互聯(lián)建站于2013年開始,先為鞏留等服務(wù)建站,鞏留等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為鞏留企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

      Windows程序獲得鍵盤輸入的方式:鍵盤輸入以消息的形式傳遞給程序的窗口過程。實(shí)際上,第一次學(xué)習(xí)消息時(shí),鍵盤就是一個(gè)明顯的例子:消息應(yīng)該傳遞給應(yīng)用程序的信息類型。

      Windows用8種不同的消息來(lái)傳遞不同的鍵盤事件。這好像太多了,但是(就像我們所看到的一樣)程序可以忽略其中至少一半的消息而不會(huì)有任何問題。并且,在大多數(shù)情況下,這些消息中包含的鍵盤信息會(huì)多于程序所需要的。處理鍵盤的部分工作就是識(shí)別出哪些消息是重要的,哪些是不重要的。

      鍵盤基礎(chǔ)知識(shí)

      雖然應(yīng)用程序在很多情況下可以通過鼠標(biāo)實(shí)現(xiàn)信息的輸入,但到現(xiàn)在為止鍵盤仍然是PC機(jī)中不可替代的重要輸入設(shè)備。

      用鍵盤當(dāng)作輸入設(shè)備,每當(dāng)用戶按下或釋放某一個(gè)鍵時(shí),會(huì)產(chǎn)生一個(gè)中斷,該中斷激活鍵盤驅(qū)動(dòng)程序KEYBOARD.DRV來(lái)對(duì)鍵盤中斷進(jìn)行處理。 KEYBOARD.DRV程序會(huì)根據(jù)用戶的不同操作進(jìn)行編碼,然后調(diào)用Windows用戶模塊USER.EXE生成鍵盤消息,并將該消息發(fā)送到消息隊(duì)列中等候處理。

      1.掃描碼和虛擬碼

      掃描碼對(duì)應(yīng)著鍵盤上的不同鍵,每一個(gè)鍵被按下或釋放時(shí),都會(huì)產(chǎn)生一個(gè)唯一的掃描碼作為本身的標(biāo)識(shí)。掃描碼依賴于具體的硬件設(shè)備,即當(dāng)相同的鍵被按下或釋放時(shí),在不同的機(jī)器上可能產(chǎn)生不同的掃描碼。在程序中通常使用由Windows系統(tǒng)定義的與具體設(shè)備無(wú)關(guān)的虛擬碼。在擊鍵產(chǎn)生掃描碼的同時(shí),鍵盤驅(qū)動(dòng)程序KEYBOARD.DRV截取鍵的掃描碼,然后將其翻譯成對(duì)應(yīng)的虛擬碼,再將掃描碼和虛擬碼一齊編碼形成鍵盤消息。所以,最后發(fā)送到消息隊(duì)列的鍵盤消息中,既包含了掃描碼又包含了虛擬碼。

      經(jīng)常使用的虛擬碼在WINDOWS.H文件中定義,常用虛擬碼的數(shù)值、常量符號(hào)和含義如表所示。

      取值(16進(jìn)制) 常量符號(hào) 含義

      01 VK_LBUTTON 鼠標(biāo)左鍵

      02 VK_RBUTTON 鼠標(biāo)右鍵

      03 VK_CANCEL Break中斷鍵

      04 VK_MBUTTON 鼠標(biāo)中鍵

      05-07 -- 未定義

      08 VK_BACK (BackSpace)鍵

      09 VK_TAB Tab鍵

      0A-0B -- 未定義

      0C VK_CLEAR Clear鍵

      0D VK_RETURN Enter鍵

      0E-0F -- 未定義

      10 VK_SHIFT Shift鍵

      11 VK_CONTROL Ctrl鍵

      12 VK_MENU Alt鍵

      13 VK_PAUSE Pause鍵

      14 VK_CAPTIAL CapsLock鍵

      15-19 -- 漢字系統(tǒng)保留

      1A -- 未定義

      1B VK_ESCAPE Esc鍵

      1C-1F -- 漢字系統(tǒng)保留

      20 VK_SPACE 空格鍵

      21 VK_PRIOR PageUp鍵

      22 VK_NEXT PageDown鍵

      23 VK_END End鍵

      24 VK_HOME Home鍵

      25 VK_LEFT ←(Left Arrow)鍵

      26 VK_UP ↑(Up Arrow)鍵

      27 VK_RIGHT →(Right Arrow)鍵

      28 VK_DOWN ↓(Down Arrow)鍵

      29 VK_SELECT Select鍵

      2A -- OEM保留

      2B VK_EXECUTE Execute鍵

      2C VK_SNAPSHOT Print Screen鍵

      2D VK_INSERT Insert鍵

      2E VK_DELETE Delete鍵

      2F VK_HELP Help鍵

      30-39 VK_0-VK_9 數(shù)字鍵0-9

      3A-40 -- 未定義

      41-5A VK_A-VK_Z 字母鍵A-Z

      5B-5F -- 未定義

      60-69 VK_NUMPAD0-VK_NUMPAD9 小鍵盤數(shù)字鍵0-9

      6A VK_MULTIPLY *(乘號(hào))鍵

      6B VK_ADD +(加號(hào))鍵

      6C VK_SEPAPATOR 分隔符鍵

      6E VK_SUBTRACT -(減號(hào))鍵

      6F VK_DECIMAL .(小數(shù)點(diǎn))鍵

      70-87 VK_DIVIDE /(除號(hào))鍵

      88-8F VK_F1-VK_F24 F1-F24功能鍵

      90 VK_NUMBERLOCK Number lock鍵

      91 VK_SCROLL Scroll lock鍵

      92-B9 -- 未定義

      BA-C0 -- OEM保留

      C1-DA -- 未定義

      DB_E4 -- OEM保留

      E5 -- 未定義

      E6 -- OEM保留

      E7-E8 -- 未定義

      E9-F5 -- OEM保留

      F6-FE -- 未定義

      2.輸入焦點(diǎn)

      同一時(shí)刻,Windows中可能有多個(gè)不同的程序在運(yùn)行,也就是說(shuō)有多個(gè)窗口同時(shí)存在。這時(shí),鍵盤由多個(gè)窗口共享,但只有一個(gè)窗口能夠接收到鍵盤消息,這個(gè)能夠接收鍵盤消息的窗口被稱為擁有輸入焦點(diǎn)的窗口。

      擁有輸入焦點(diǎn)的窗口應(yīng)該是當(dāng)前的活動(dòng)窗口,或者是活動(dòng)窗口的子窗口,其標(biāo)題和邊框會(huì)以高亮度顯示,以區(qū)別于其他窗口。擁有輸入焦點(diǎn)的也可以是圖標(biāo)而不是窗口,此時(shí),Windows也將消息發(fā)送給圖標(biāo),只是消息的格式略有不同。

      窗口過程可以通過發(fā)送WM_SETFOCUS和 WM_KILLFOCUS消息使窗體獲得或失去輸入焦點(diǎn)。程序也可以通過捕獲WM_SETFOCUS和WM_KILLFOCUS消息來(lái)判斷窗體何時(shí)獲得或失去輸入焦點(diǎn)。其中WM_SETFOCUS消息表示窗口正獲得輸入焦點(diǎn),WM_ KILLFOCUS消息表示窗口正失去輸入焦點(diǎn)。

      3.鍵盤消息

      鍵盤消息分為系統(tǒng)鍵消息和非系統(tǒng)鍵消息。系統(tǒng)鍵消息是指由Aft鍵和其他鍵組合而產(chǎn)生的按鍵消息。當(dāng)系統(tǒng)鍵被按下時(shí)產(chǎn)生WM_ SYSKEYDOWN消息,當(dāng)系統(tǒng)鍵被釋放時(shí)產(chǎn)生WM_SYSKEYUP消息。 Aft鍵與其他鍵形成的組合鍵通常用于對(duì)程序菜單和系統(tǒng)菜單進(jìn)行選擇,或用于在不同的程序之間進(jìn)行切換。因此,系統(tǒng)鍵消息應(yīng)該交由Windows進(jìn)行處理,用戶所編制的程序一般不處理系統(tǒng)鍵消息,而是將這些消息交由DefWindowProc函數(shù)進(jìn)行處理。如果用戶想對(duì)系統(tǒng)鍵消息進(jìn)行處理,應(yīng)該在處理完這些消息后,再將其發(fā)送給DefWindowProc函數(shù),使得Windows系統(tǒng)能夠正常工作。

      某些擊鍵消息可以被轉(zhuǎn)換成字符消息,例如字母鍵、數(shù)字鍵等。而有些鍵只能產(chǎn)生按鍵消息而沒有字符消息,例如 Shift鍵、Insert鍵等。消息循環(huán)中的 TranslateMessage函數(shù)可以實(shí)現(xiàn)從擊鍵消息向字符消息的轉(zhuǎn)化。當(dāng)GetMessage函數(shù)捕獲一個(gè)WM_SYSKEYDOWN消息或 WM_KEYDOWN消息后,TranslateMessage函數(shù)判斷產(chǎn)生該消息的鍵是否能夠被轉(zhuǎn)換成字符消息,如果能,就將該消息轉(zhuǎn)換成字符消息,再通過DispatchMessape函數(shù)將轉(zhuǎn)換后的字符消息發(fā)送到消息隊(duì)列中去。字符消息共有以下四種,如表所示。

      字符 系統(tǒng)字符 非系統(tǒng)字符

      普通字符 WM_SYSCHAR WM_CHAR

      死字符 WM_SYSDEADCHAR WM_DEADCHAR

      其中死字符是由某些特殊鍵盤上的按鍵所造成的,Windows一般忽略死字符所產(chǎn)生的消息。

      Windows的消息一般是通過一個(gè)MSG結(jié)構(gòu)體變量傳送給消息處理函數(shù)的。對(duì)于鍵盤消息, MSG結(jié)構(gòu)體變量的各個(gè)域中較重要的是lParam域和 wParam域。wParam域用于保存按鍵的虛擬鍵代碼或字符的ASCII碼。對(duì)于非字符消息,wParam域保存按鍵的虛擬健代碼;對(duì)于字符消息, wParam域不保存字符的ASCII碼。lParam域則用于保存擊鍵時(shí)產(chǎn)生的附加信息,實(shí)際上一個(gè)32位的lParam變量被分為六部分,記錄了以下相關(guān)信息:重復(fù)次數(shù)、OEM掃描碼、擴(kuò)展鍵標(biāo)志、關(guān)聯(lián)鍵標(biāo)志、前一擊鍵狀態(tài)和轉(zhuǎn)換狀態(tài)。lParam域各位的含義如表所示。

      位數(shù) 含義

      0-15 擊鍵重復(fù)次數(shù)累加

      16-23 OEM掃描碼

      24 是否為擴(kuò)展鍵

      25-28 未定義

      29 是否便用關(guān)聯(lián)鍵,及Alt鍵是否同時(shí)按下。

      30 前一次擊鍵狀態(tài),0表示該鍵前一次狀態(tài)為抬起,1表示前一次狀態(tài)為按下

      31 轉(zhuǎn)換狀態(tài)

      按鍵的次序不同,產(chǎn)生的消息也不相同。例如,按下并釋放1鍵,讀過程依次產(chǎn)生如表所示三條消息。按下1鍵所產(chǎn)生的消息和wParam的取值

      消息 wParam變量取值

      WM_KEYDOWN 虛擬碼1

      WM_CHAR ASCII碼“1”

      WM_KEYUP 虛擬碼1

      如果按下Shift鍵后再按下1鍵并釋放,則依次產(chǎn)生如表所示的消息。按下 Shift鍵后按 1健所產(chǎn)生的消息和 wParam的取值

      消息 wParam變量取值

      WM_KEYDOWN 虛擬碼 VK_SHIFT

      WM_KEYDOWN 虛擬碼 VK_1

      WM_CHAR ASCII碼 “1”

      WM_KEYUP 虛擬碼 VK_1

      WM_KEYUP 虛擬碼 VK_SHIF

      鍵盤應(yīng)用實(shí)例

      下面通過一個(gè)應(yīng)用程序?qū)嵗齺?lái)說(shuō)明在實(shí)際編程中如何處理鍵盤消息。

      #include?windows.h

      #include?stdio.h

      //?全局變量

      RECT?rc;?//記錄滾屏的矩形區(qū)域

      ?

      int?xChar,?yChar;?//文本輸入點(diǎn)坐標(biāo)

      WNDCLASSEX?wnd;?//窗口類結(jié)構(gòu)變量

      char?szAppName[]?=?"鍵盤消息監(jiān)視程序";?//窗口類名

      //函數(shù)聲明

      LRESULT?CALLBACK?WndProc(HWND,?UINT,?WPARAM,?LPARAM);

      BOOL?MyRegisterClass(HINSTANCE?hInstance);

      BOOL?InitInstance(HINSTANCE?hInstance,int?iCmdShow);

      //函數(shù):WinMain

      //作用:入口函數(shù)

      int?WINAPI?WinMain(HINSTANCE?hInstance,HINSTANCE?hPrevInstance,LPSTR?szCmdLine,int?iCmdShow)

      {

      MSG?msg;

      if(!MyRegisterClass(hInstance))

      {

      return?FALSE;

      }

      if(!InitInstance(hInstance,iCmdShow))

      {

      return?FALSE;

      }

      while?(GetMessage?(msg,?NULL,?0,?0))

      {

      TranslateMessage?(msg);

      DispatchMessage?(msg);

      }

      return?msg.wParam;

      }

      //函數(shù):ShowKey

      //作用:實(shí)現(xiàn)在窗口中顯示按鍵信息

      void?ShowKey?(HWND?hwnd,?int?iType,char?*szMessage,WPARAM?wParam,LPARAM?lParam)

      {

      static?char?*szFormat[2]?={"%-14s?%3d?%c?%6u?%4d?%5s?%5s?%6s?%6s",

       ?"%-14s?%3d?%c?%6u?%4d?%5s?%5s?%6s?%6s"?};

      char?szBuffer[80];

      HDC?hdc;

      ScrollWindowEx(hwnd,?0,?-yChar,?rc,rc,NULL,NULL,SW_INVALIDATE);

      hdc?=?GetDC?(hwnd);

      SelectObject?(hdc,?GetStockObject?(SYSTEM_FIXED_FONT));

      TextOut?(hdc,

      xChar,

      rc.bottom?-?yChar,

      szBuffer,

      wsprintf?szBuffer,

      szFormat[iType],

      szMessage,?//消息

      wParam,?//虛擬鍵代碼

      (BYTE)?(iType???wParam?:‘?’),//顯示字符值

      LOWORD?(lParam),?//?重復(fù)次數(shù)

      HIWORD?(lParam)??0xFF,?//?OEM鍵盤掃描碼

      //判斷是否為增強(qiáng)鍵盤的擴(kuò)展鍵

      (PSTR)?(0x01000000??lParam???“是”?:?“否”),

      //判斷是否同時(shí)使用了ALT鍵

      (PSTR)?(0x20000000??lParam???“是”?:?“否”),

      (PSTR)?(0x40000000??lParam???“按下”?:?“抬”),

      //判斷前一次擊鍵狀

      (PSTR)(0x80000000??lParam???“按下”?:?“抬起”))

      //判斷轉(zhuǎn)換狀態(tài)?

      );

      ReleaseDC?(hwnd,?hdc);??

      ValidateRect?(hwnd,?NULL);??

      }

      //函數(shù):WndProc

      //作用:處理主窗口的消息

      LRESULT?CALLBACK?WndProc?(HWND?hwnd,?UINT?iMsg,?WPARAM?wParam,?LPARAM?lParam)

      {

      static?char?szTop[]?="消息鍵?字符?重復(fù)數(shù)?掃描碼?擴(kuò)展碼?ALT?前一狀態(tài)?轉(zhuǎn)換狀態(tài)";

      static?char?szUnd[]?="_______?__?____?_____?______?______?___?_______?______";

      //在窗口中輸出文字作為信息標(biāo)題

      HDC?hdc;

      PAINTSTRUCT?ps;

      TEXTMETRIC?tm;

      switch?(iMsg)

      {

      case?WM_CREATE://處理窗口創(chuàng)建的消息

      hdc?=?GetDC?(hwnd);?//設(shè)定字體

      SelectObject?(hdc,?GetStockObject?(SYSTEM_FIXED_FONT));?//檢取當(dāng)前字體的度量數(shù)據(jù)

      GetTextMetrics?(hdc,?tm);

      xChar?=?tm.tmAveCharWidth;//保存字體平均寬度

      yChar?=?tm.tmHeight;?//保存字體高度

      ReleaseDC?(hwnd,?hdc);

      rc.top?=?3?*?yChar?/?2;

      return?0;

      case?WM_SIZE://處理窗口大小改變的消息

      //窗體改變后保存新的滾屏區(qū)域右下角坐標(biāo)

      rc.right?=?LOWORD?(lParam);

      rc.bottom?=?HIWORD?(lParam);

      UpdateWindow?(hwnd);

      return?0;

      case?WM_PAINT:?//處理窗口重繪消息

      InvalidateRect?(hwnd,?NULL,?TRUE);

      hdc?=?BeginPaint?(hwnd,?ps);

      SelectObject?(hdc,?GetStockObject?(SYSTEM_FIXED_FONT))?;

      SetBkMode?(hdc,?TRANSPARENT)?;

      TextOut?(hdc,?xChar,?yChar?/?2,?szTop,?(sizeof?szTop)?-?1)?;

      TextOut?(hdc,?xChar,?yChar?/?2,?szUnd,?(sizeof?szUnd)?-?1)?;

      EndPaint?(hwnd,?ps);

      return?0;

      case?WM_KEYDOWN:

      //處理鍵盤上某一鍵按下的消息

      ShowKey?(hwnd,?0,?"WM_KEYDOWN",wParam,?lParam);

      return?0;

      case?WM_KEYUP:

      //處理鍵盤上某一按下鍵被釋放的消息

      ShowKey?(hwnd,?0,?"WM_KEYUP",?wParam,?lParam);

      return?0;

      case?WM_CHAR:

      //處理?yè)翩I過程中產(chǎn)生的非系統(tǒng)鍵的可見字符消息

      howKey?(hwnd,?1,?"WM_CHAR",?wParam,?lParam);

      return?0;

      case?WM_DEADCHAR:

      //處理?yè)翩I過程中產(chǎn)生的非系統(tǒng)鍵"死字符"消息

      ShowKey?(hwnd,?1,?"WM_DEADCHAR",?wParam,?lParam);

      return?0;

      case?WM_SYSKEYDOWN:

      //處理系統(tǒng)鍵按下的消息

      ShowKey?(hwnd,?0,?"WM_SYSKEYDOWN",wParam,?lParam);

      break;

      case?WM_SYSKEYUP:

      //處理系統(tǒng)鍵抬起的消息

      ShowKey?(hwnd,?0,?"WM_SYSKEYUP",?wParam,?lParam);

      break;

      case?WM_SYSCHAR://處理系統(tǒng)鍵可見字符消息

      ShowKey?(hwnd,?1,?"WM_SYSCHAR",?wParam,?lParam);

      break;

      case?WM_SYSDEADCHAR://處理系統(tǒng)鍵"死字符"消息

      ShowKey?(hwnd,?1,?"WM_SYSDEADCHAR",?wParam,?lParam);

      break;

      case?WM_DESTROY:

      //處理結(jié)束應(yīng)用程序的消息

      PostQuitMessage?(0);

      return?0;

      }

      return?DefWindowProc?(hwnd,?iMsg,?wParam,?lParam);

      }

      //函數(shù):MyRegisterClass

      //作用:注冊(cè)窗口類

      BOOL?MyRegisterClass(HINSTANCE?hInstance)

      {

      wnd.cbSize=?sizeof?(wnd);

      wnd.style?=?CS_HREDRAW?|?CS_VREDRAW;

      wnd.lpfnWndProc?=?WndProc;

      wnd.cbClsExtra?=?0;

      wnd.cbWndExtra?=?0;

      wnd.hInstance?=?hInstance;

      wnd.hIcon?=?LoadIcon?(NULL,?IDI_APPLICATION);?

      wnd.hCursor?=?LoadCursor?(NULL,?IDC_ARROW);

      wnd.hbrBackground?=?(HBRUSH)

      GetStockObject?(WHITE_BRUSH);

      wnd.lpszMenuName?=?NULL;

      wnd.lpszClassName?=?szAppName;

      wnd.hIconSm?=?LoadIcon?(NULL,?IDI_APPLICATION);

      return?RegisterClassEx?(wnd);

      }

      //函數(shù):InitInstance

      //作用:創(chuàng)建主窗口

      BOOL?InitInstance(HINSTANCE?hInstance,int?iCmdShow)

      {

      HWND?hwnd;

      hwnd?=?CreateWindow?(szAppName,

      "鍵盤消息監(jiān)視程序",

      WS_OVERLAPPEDWINDOW,

      CW_USEDEFAULT,CW_USEDEFAULT,

      CW_USEDEFAULT,CW_USEDEFAULT,

      NULL,NULL,hInstance,NULL

      );

      if(!hwnd)

      {

      return?FALSE;

      }

      ShowWindow?(hwnd,?iCmdShow);

      UpdateWindow?(hwnd);

      return?TRUE;

      }

      使用C語(yǔ)言 直接讀取鍵盤操作的C++函數(shù)

      getch();

      無(wú)回顯的等待使用者輸入一個(gè)字符。

      所謂無(wú)回顯,就是你輸入了一個(gè)w,但是w不會(huì)在控制臺(tái)中顯示……但是絕對(duì)是按下了。

      他的返回值就是按下的字符。

      如果是Win32編程的話,你需要捕獲WM_CHAR消息,然后根據(jù)wParam參數(shù)的值來(lái)判斷按下的字符!

      希望對(duì)你有幫助~

      C語(yǔ)言獲取按鍵信息函數(shù)

      這個(gè)程序應(yīng)該滿足你的要求吧。

      #include stdio.h

      #include conio.h

      int main(void)

      {

      while (1)

      {

      if (!kbhit())

      printf("1");

      else

      {

      char c = getch();

      if (c == 'a')

      {

      putchar('2');

      getch();

      }

      }

      }

      return 0;

      }

      在c語(yǔ)言中什么函數(shù)能實(shí)現(xiàn)識(shí)別鍵盤上的按鍵?

      添加WM_KEYDOWN函數(shù)。在函數(shù)體中case WM_KEYDOWN: if (wParam==VK_LEFT)//方向鍵左 { rect1.left-=10; rect1.right-=10; InvalidateRect (hWnd,NULL,TRUE); } else if (wParam==VK_RIGHT)//方向鍵右 { rect1.left+=10; rect1.right+=10; InvalidateRect (hWnd,NULL,TRUE); } else if (wParam==VK_UP)//方向鍵上 { rect1.top-=10; rect1.bottom-=10; InvalidateRect (hWnd,NULL,TRUE); } else if (wParam==VK_DOWN)//方向鍵下 { rect1.top+=10; rect1.bottom+=10; InvalidateRect (hWnd,NULL,TRUE); } else if (wParam==VK_PRIOR)//PG UP { rect1.top-=10; rect1.bottom-=10; InvalidateRect (hWnd,NULL,TRUE); } else if (wParam==VK_NEXT)//PG DN { rect1.top+=10; rect1.bottom+=10; InvalidateRect (hWnd,NULL,TRUE); } else if (wParam==VK_HOME)//HOME { rect1.left-=10; rect1.right-=10; InvalidateRect (hWnd,NULL,TRUE); } else if (wParam==VK_END)//END { rect1.left+=10; rect1.right+=10; InvalidateRect (hWnd,NULL,TRUE); } break;

      C語(yǔ)言怎么捕捉按鍵

      給一個(gè)提示你

      鍵盤常用ASCII碼

      ESC鍵

      VK_ESCAPE

      (27)

      回車鍵:

      VK_RETURN

      (13)

      TAB鍵:

      VK_TAB

      (9)

      Caps

      Lock鍵:

      VK_CAPITAL

      (20)

      Shift鍵:

      VK_SHIFT

      (16)

      Ctrl鍵:

      VK_CONTROL

      (17)

      Alt鍵:

      VK_MENU

      (18)

      空格鍵:

      VK_SPACE

      (32)

      退格鍵:

      VK_BACK

      (8)

      左徽標(biāo)鍵:

      VK_LWIN

      (91)

      右徽標(biāo)鍵:

      VK_LWIN

      (92)

      鼠標(biāo)右鍵快捷鍵:VK_APPS

      (93)

      Insert鍵:

      VK_INSERT

      (45)

      Home鍵:

      VK_HOME

      (36)

      Page

      Up:

      VK_PRIOR

      (33)

      PageDown:

      VK_NEXT

      (34)

      End鍵:

      VK_END

      (35)

      Delete鍵:

      VK_DELETE

      (46)

      方向鍵(←):

      VK_LEFT

      (37)

      方向鍵(↑):

      VK_UP

      (38)

      方向鍵(→):

      VK_RIGHT

      (39)

      方向鍵(↓):

      VK_DOWN

      (40)

      F1鍵:

      VK_F1

      (112)

      F2鍵:

      VK_F2

      (113)

      F3鍵:

      VK_F3

      (114)

      F4鍵:

      VK_F4

      (115)

      F5鍵:

      VK_F5

      (116)

      F6鍵:

      VK_F6

      (117)

      F7鍵:

      VK_F7

      (118)

      F8鍵:

      VK_F8

      (119)

      F9鍵:

      VK_F9

      (120)

      F10鍵:

      VK_F10

      (121)

      F11鍵:

      VK_F11

      (122)

      F12鍵:

      VK_F12

      (123)

      Num

      Lock鍵:

      VK_NUMLOCK

      (144)

      小鍵盤0:

      VK_NUMPAD0

      (48)

      小鍵盤1:

      VK_NUMPAD0

      (49)

      小鍵盤2:

      VK_NUMPAD0

      (50)

      小鍵盤3:

      VK_NUMPAD0

      (51)

      小鍵盤4:

      VK_NUMPAD0

      (52)

      小鍵盤5:

      VK_NUMPAD0

      (53)

      小鍵盤6:

      VK_NUMPAD0

      (54)

      小鍵盤7:

      VK_NUMPAD0

      (55)

      小鍵盤8:

      VK_NUMPAD0

      (56)

      小鍵盤9:

      VK_NUMPAD0

      (57)

      小鍵盤.:

      VK_DECIMAL

      (46)

      小鍵盤*:

      VK_MULTIPLY

      (42)

      小鍵盤+:

      VK_ADD

      (43)

      小鍵盤-:

      VK_SUBTRACT

      (45)

      小鍵盤/:

      VK_DIVIDE

      (47)

      Pause

      Break鍵:

      VK_PAUSE

      (19)

      Scroll

      Lock鍵:

      VK_SCROLL

      (145)


      當(dāng)前名稱:c語(yǔ)言鍵盤捕捉函數(shù) C語(yǔ)言鍵盤控制
      URL鏈接:http://www.ef60e0e.cn/article/doosejc.html
      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区
      1. <ul id="0c1fb"></ul>

        <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
        <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

        古田县| 河池市| 横山县| 虞城县| 肇东市| 唐山市| 连州市| 香格里拉县| 哈巴河县| 新河县| 阳高县| 仁寿县| 芒康县| 富平县| 南澳县| 富川| 稻城县| 格尔木市| 类乌齐县| 刚察县| 神池县| 福建省| 东辽县| 大埔县| 冕宁县| 久治县| 中超| 林芝县| 宜兰县| 乌兰县| 杂多县| 铁力市| 商洛市| 休宁县| 商丘市| 裕民县| 临江市| 西畴县| 阳原县| 兰州市| 新竹市|