第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

C#如何將虛擬鍵碼轉(zhuǎn)換為char?

C#如何將虛擬鍵碼轉(zhuǎn)換為char?

C#
函數(shù)式編程 2019-12-04 12:38:50
我正在嘗試將虛擬鍵碼映射到char。我的代碼使用ProcessCmdKey來監(jiān)聽WM_KEYDOWN,這使我可以訪問所按下的鍵。例如,當(dāng)我按單引號時(shí),我會得到一個(gè)鍵222,我想將它映射到代表...您猜對了...單引號的keychar 39。我的開發(fā)環(huán)境是:-.net Framework 2.0-UserControl放置在很多地方你知道這個(gè)問題的答案嗎?
查看完整描述

3 回答

?
一只甜甜圈

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超5個(gè)贊

是的,我確實(shí)使用了該MapVirtualKey方法。但是我期待更多有關(guān)如何使用它的細(xì)節(jié):DllImport要使用的指令,enum特定于字符映射的指令等。


我不喜歡這些答案,在Google上停留大約5秒鐘,然后提出一個(gè)解決方案:真正的挑戰(zhàn)是將所有內(nèi)容放在一起,而不必浪費(fèi)大量時(shí)間在無樣本的MSDN頁面或其他編碼論壇上為了得到你的答案。沒有冒犯的根基,但是您的回答(即使是很好)也沒問題,因?yàn)榧词乖谡搲习l(fā)布我的問題之前我也有這個(gè)答案!


因此,您去了,我要發(fā)布我想要的東西-一個(gè)現(xiàn)成的C#解決方案:


1-將此指令放在您的類中:


[DllImport("user32.dll")]

static extern int MapVirtualKey(uint uCode, uint uMapType);

2-像這樣檢索您的字符:


  protected override bool ProcessCmdKey(ref Message msg, Keys keyData)      

  {

     const int WM_KEYDOWN = 0x100;


     if (msg.Msg == WM_KEYDOWN)

     {            

        // 2 is used to translate into an unshifted character value 

        int nonVirtualKey = MapVirtualKey((uint)keyData, 2);


        char mappedChar = Convert.ToChar(nonVirtualKey);

     }


     return base.ProcessCmdKey(ref msg, keyData);

  }

感謝您的關(guān)心...并享受!


查看完整回答
反對 回復(fù) 2019-12-04
  • 3 回答
  • 0 關(guān)注
  • 640 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號