キー入力
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/09/01 06:22 UTC 版)
Windowに対するキー入力はイベントハンドラで受け取ることが出来る。仮想キーコードや生キーコード(RawKeyCode)を受け取る CWnd::OnKeyDown()と、Unicodeを受け取るCWnd::OnChar()が利用できる。OnChar()は、どのプラットフォームにおいても、日本語IMEを使った日本語入力に対応している。顔文字などの16BIT Unicodeではサロゲートペアで表現される文字も、自動的にUTF32に変換される。Android出力やWebAssembly出力では、ソフトウェアキーボードと物理キーボードに対応している。WebAssemblyでは、キー入力も含めた全ての入出力はJSの機能を用いることによって行われるが、JSのキー入力イベントは、日本語を入力することが出来ない。しかし、NWSTKでは、HTMLのtextarea要素を上手く利用することにより、あたかも、WindowsのWM_CHARイベントで日本語を受け取っているかのように、CWnd::OnChar()イベントが呼び出され、アプリケーション作者目線では、HTMLのtextareaの存在を意識する必要が無い。また、IMEがONの場合でも、BackSpaceキーなどをCWnd::OnKeyDown()やCWnd::OnChar()で受け取ることが可能である。仮想キーコードでは、数字キーやカーソルキーを入力した時、メインキーを押したことに起因するのか、テンキー(NUM PAD)を押したことに起因するのかが区別できないため、便利なエディタを作りたいときには不便である。そこで、NWSTKでは、仮想キーコード以外に、生キーコード(RawKeyCode)もサポートすることによって、メインキーとテンキー、左右シフトキー、左右コントロールキーなどが明確に区別できるようにしてある。
※この「キー入力」の解説は、「NWSTK」の解説の一部です。
「キー入力」を含む「NWSTK」の記事については、「NWSTK」の概要を参照ください。
- キー入力のページへのリンク