線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1106
推到 Plurk!
推到 Facebook!

請問一下文字轉VK碼

尚未結案
bluechanel
一般會員


發表:7
回覆:15
積分:4
註冊:2003-03-10

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-03-26 15:09:47 IP:218.165.xxx.xxx 未訂閱
如: Edit1->Text 我輸入F1 我想把他轉成VK碼送出, 由PostMessage(hWnd, WM_KEYDOWN, Edit1->Text, 0); Edit1->Text這個地方,我要用什麼函數轉換呢?
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-03-27 00:50:41 IP:61.221.xxx.xxx 未訂閱
引言: 如: Edit1->Text 我輸入F1 我想把他轉成VK碼送出, 由PostMessage(hWnd, WM_KEYDOWN, Edit1->Text, 0); Edit1->Text這個地方,我要用什麼函數轉換呢?
bluechannel 你好: 據我所知,並沒有現成的 API 可以使用< > 不過~~自己寫一個也應該不算困難吧< >
   // ...................
   PostMessage(Handle, WM_KEYDOWN, (WPARAM)KeyNameToVirtualKeyCode(Edit1->Text), 0);
   // ...................
WORD KeyNameToVirtualKeyCode(AnsiString szKeyName)
{
   if(szKeyName=="F1")
   {
      return(VK_F1);
   }
   if(szKeyName=="F2")
   {
      return(VK_F2);
   }
   // ..........................很多 Key
   return 0;
}
-- Enjoy Researching & Developing --
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
jessechan
版主


發表:109
回覆:394
積分:254
註冊:2002-04-05

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-03-27 01:00:16 IP:61.228.xxx.xxx 未訂閱
這個問題有個奇怪的地方, 你的 F1 是一個字串嗎, 如果是這樣的話你只好自己做一個 mapping table, 而且還要你的使用者放在身邊以備不時之需, 因為如果人家輸入 f1, 程式也不見得看得懂, 要達到這樣的功能還不如作一個 Combo box 會比用 Edit box 有人性多了, 另外要將某個 ascii code 轉成 VK 可參考 OemKeyScan, VkScan, 這一系列的 Win32 API, 查 BCB 的 help 就有. Jesse Chan 發表人 - jessechan 於 2003/03/27 01:02:43
------
Jesse Chan
jessechan
版主


發表:109
回覆:394
積分:254
註冊:2002-04-05

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-03-27 01:01:48 IP:61.228.xxx.xxx 未訂閱
包子, 好幾次問題回答一半, 你就寫好了, 真是有默契.    Jesse Chan 發表人 -
------
Jesse Chan
bluechanel
一般會員


發表:7
回覆:15
積分:4
註冊:2003-03-10

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-03-27 01:27:33 IP:218.165.xxx.xxx 未訂閱
呵呵 我之前就是用那種mapping的方法 覺得好像笨笨的,所以才提出來問看看的 其實我自己是用combobox,會拿edit舉例 我是想都差不多,主要只是想問如何把字串 翻成vk而已,既然沒啥現成的辦法 那就讓程式繼續那麼長吧 :p
jessechan
版主


發表:109
回覆:394
積分:254
註冊:2002-04-05

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-03-27 02:02:37 IP:61.228.xxx.xxx 未訂閱
我教你一個偏方, 你去查 ComboBox1->Items->AddObject 的用法, 然後用 ComboBox1->Items->AddObject("F1", (TObject *)112); 這是一個例子, 112 我沒記錯的話是 F1 的 VK, 使用時 nVK = (int)ComboBox1->Items->Objects[ComboBox1->ItemIndex]; 其它的不用我多說了吧 Jesse Chan
------
Jesse Chan
系統時間:2024-05-05 0:47:38
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!