因此,我使用Windows API在C++中創建了自己的編輯控件(多行文本框)。這很好,但我對一件事有點困惑。WinAPI:如何在自定義編輯控件中處理鍵盤輸入
首先,控件的構建是爲了能夠處理unicode,並且所有輸入都將轉換爲unicode。換句話說,所有的輸入都將被存儲爲wchar_t。
我很困惑的是鍵盤輸入要處理的消息。 MSDN有如下窗口通知:
WM_CHAR
WM_KEYDOWN
WM_UNICHAR
等人,但我相信它是這三個,我需要處理的一個。我的猜測是WM_UNICHAR,但文檔有點不清楚。此外,在觀看過VKcodes,我看到這一點:
VK_PACKET
0xE7
使用,如果他們的擊鍵傳遞Unicode字符。 VK_PACKET鍵是用於非鍵盤輸入方法的32位虛擬鍵值的低位字。有關更多信息,請參閱KEYBDINPUT,SendInput,WM_KEYDOWN和WM_KEYUP中的備註。
對不起,如果這是一個愚蠢的問題,但我只是想確定這一點。
你是出於好奇,還是因爲你不喜歡/不提供的標準編輯控件?我只問,因爲編輯框中有很多功能。 – Skizz 2011-04-30 21:55:01
控件必須能夠處理大量文本而不會凍結或滯後。另外,我還需要支持多種顏色的文本和粗體/斜體。我知道RichEdit控件處理後兩種,但不是第一種。是的,有很多東西都可以用來製作這樣的東西,但是它也有很多樂趣和很棒的學習體驗。^ _^ – Gogeta70 2011-04-30 21:58:31