 | | WideStudio/MWT Class Reference
| |
クラスの型
WSDkeyboard
メソッド関数仕様
WSGIappKeyboard 関数の説明
- 書式
- WSDkeyboard* WSGIappKeyboard()
- 機能
- アプリケーションに1つ存在するキーボードの
グローバルインスタンスを取得します。
WSDkeyboard クラスへのアクセスはこの関数を介して行います。
また、取得したグローバルインスタンスに対するポインタを
解放してはいけません。
- 処理
-
- 引数
- なし。
- 返値
- キーボードインスタンスへのポインタ
- 注意
- この関数はグローバル関数です。
返されたポインタを解放してはいけません。
- サンプル
-
WSDkeyboard* keyboard = WSGIappKeyboard();
//入力のあったキーコードの取得
long keycode = keyboard->getKey();
//入力文字列の取得
WSCstring str = keyboard->getText();
//キーの種類の判定
WSCbool cursor = keyboard->isCursorKey();
WSCbool funckey = keyboard->isFuncKey();
//修飾キーの状態の取得
WSCbool shift = keyboard->withShift();
WSCbool ctrl = keyboard->withCntl();
WSCbool alt = keyboard->withAlt();
WSCbool lock = keyboard->withLock();
getText 関数の説明
- 書式
- char* getText(long encoding = WS_EN_DEFAULT)
- 機能
- キーボード入力された文字列を取得する関数です。
IME (日本語入力フロントエンド)経由で入力された日本語等は
この関数で取得します。
- 処理
-
- 引数
-
(in)long encoding | 文字列のエンコーディング |
エンコーディングに指定できる値には、
WSCstring クラスのコンストラクタを参照ください。
エンコーディングは省略可能です。
- 引数
- なし
- 返値
- キー入力された文字列
- 注意
- 返された文字列を解放してはいけません。
また、キーボード入力イベント WSEV_KEY_PRESS 等が発生した後
でないと、文字列の取得はできません。
- サンプル
- WSGIappKeyboard() を参照してください。
setText 関数の説明
- 書式
- void setText(char* text,long encoding = WS_EN_DEFAULT)
- 機能
- キーボード入力された文字列を任意の文字列に置き換える関数です。
WSCvifield、WSCtextField 等で入力文字列を変更する場合は、
WSEV_KEY_HOOK イベントプロシージャ内でこの関数を呼び出します。
エンコーディングを省略した場合は、
デフォルトエンコーディングとみなされます。
- 処理
-
- 引数
-
(in)char* text | 変更後の文字列 |
(in)long encoding | 文字列のエンコーディング |
エンコーディングに指定できる値には、
WSCstring クラスのコンストラクタを参照ください。
エンコーディングは省略可能です。
- 返値
- なし
- 注意
- WSCvifield/WSCtextField 等で入力文字列を変更する場合は、
キーボードフックイベント WSEV_KEY_HOOK で起動する
イベントプロシージャ内で置換します。
setText() 関数ではキーコードの変更はされませんので、
キーコードを変更する場合は、setKey() を使用してください。
- サンプル
-
WSDkeyboard* keyboard = WSGIappKeyboard();
//入力文字列の取得
WSCstring str = keyboard->getText();
//入力テキストの変更
if (!strcmp("a",(char*)str){
keyboard->setText("A");
}
getKey 関数の説明
- 書式
- long getKey()
- 機能
- キーボード入力されたキーを取得する関数です。
有効なキー値、キー値の定義は、WSkeysym.h に
定義されていますので、こちらを参照してください。
- 処理
-
- 引数
- なし
- 返値
- キー値
- 注意
- 有効なキー値、キー値の定義は、include/WSkeysym.h を
参照してください。
- サンプル
- WSGIappKeyboard() を参照してください。
setKey 関数の説明
- 書式
- void setKey(long key)
- 機能
- キーボード入力されたキーを任意のキーコードに変更する関数です。
setText とは異なり、getText で得られる文字列は変更しません。
WSCvifield/WSCtextField 等で入力キーコードを変更する場合は、
WSEV_KEY_HOOK イベントプロシージャ内でこの関数を呼び出します。
- 処理
-
- 引数
-
- 返値
- なし
- 注意
- 設定可能なキー値、キー値の定義は、include/WSkeysym.h を
参照してください。
WSCvifield/WSCtextField 等で入力文字列を変更する場合は、
キーボードフックイベント WSEV_KEY_HOOK で起動する
イベントプロシージャ内で置換します。
setKey() 関数では入力テキストの変更はされませんので
入力テキストを変更する場合は、setText() を利用してください。
- サンプル
-
WSDkeyboard* keyboard = WSGIappKeyboard();
//入力キーコードの取得
long key = keyboard->getKey();
//入力キーコードの変更
if (key == WSK_a){
keyboard->setKey(WSK_A);
}
withShift 関数の説明
- 書式
- WSCbool withShift()
- 機能
- シフトキーが同時に押されているかどうかを取得する関数です。
- 処理
-
- 引数
- なし。
- 返値
- True = 押されている、False = 押されていない
- 注意
-
- サンプル
- WSGIappKeyboard() を参照してください。
withLock 関数の説明
- 書式
- WSCbool withLock()
- 機能
- キャプスロックキーが同時に押されているかどうかを取得する
関数です。
- 処理
-
- 引数
- なし。
- 返値
- True = 押されている、False = 押されていない
- 注意
-
- サンプル
- WSGIappKeyboard() を参照してください。
withCntl 関数の説明
- 書式
- WSCbool withCntl()
- 機能
- コントロールキーが同時に押されているかどうかを取得する
関数です。
- 処理
-
- 引数
- なし。
- 返値
- True = 押されている、False = 押されていない
- 注意
-
- サンプル
- WSGIappKeyboard() を参照してください。
withAlt 関数の説明
- 書式
- WSCbool withAlt()
- 機能
- Alt キーが同時に押されているかどうかを取得する関数です。
- 処理
-
- 引数
- なし。
- 返値
- True = 押されている、False = 押されていない
- 注意
-
- サンプル
- WSGIappKeyboard() を参照してください。
isCursorKey 関数の説明
- 書式
- WSCbool isCursorKey()
- 機能
- カーソルコントロールキーかどうかをテストする関数です。
カーソルコントロールキーには、上下左右の矢印キー、PageUp、PageDown、
Begin、End、Next、Home などがあります。
- 処理
-
- 引数
- なし。
- 返値
- True = カーソルキー、False = 非カーソルキー
- 注意
-
- サンプル
- WSGIappKeyboard() を参照してください。
isFuncKey 関数の説明
- 書式
- WSCbool isFuncKey()
- 機能
- ファンクションキーかどうかをテストする関数です。
ファンクションキーに該当するものは、F1〜F12 です。
- 処理
-
- 引数
- なし。
- 返値
- True = ファンクションキー、False = 非ファンクションキー
- 注意
- キーボードのレイアウトにより、異なる値を示すことがあるので
注意が必要です。
- サンプル
- WSGIappKeyboard() を参照してください。
setSelectedString 関数の説明
- 書式
- void setSelectedString(char* str,long encoding = WS_EN_DEFAULT)
- 機能
- クリップボードに文字列をコピーする関数です。
- 処理
- セレクションデータとして文字列を設定します。
- 引数
-
(in)char* str | セレクションに設定する文字列 |
(in)long encoding | 文字列のエンコーディング |
エンコーディングに指定できる値には、
WSCstring クラスのコンストラクタを参照してください。
省略すると WS_EN_DEFAULT
が指定されます。
- 返値
- なし。
- 注意
-
- サンプル
-
//セレクションデータとして、文字列を設定します。
WSGIappKeyboard()->setSelectedString("selected string...");
getSelectedString 関数の説明
- 書式
- char* getSelectedString(long encoding = WS_EN_DEFAULT)
- 機能
- クリップボードから文字列データをエンコーディングを
指定して取得する関数です。
- 処理
- セレクションデータとして格納されている文字列を取得します。
- 引数
-
(in)long encoding | 文字列のエンコーディング |
エンコーディングに指定できる値には、
WSCstring クラスのコンストラクタを参照してください。
省略すると WS_EN_DEFAULT
が指定されます。
- 返値
- セレクション文字列
- 注意
-
- サンプル
-
//セレクションデータ文字列を取得します。
char* sstr = WSGIappKeyboard()->getSelectedString();
setGlobalKeyHook 関数の説明
- 書式
- void setGlobalKeyHook(WSCbool(*proc)(long,WSCbool))
- 機能
- グローバルキーフックハンドラを設定する関数です。
グローバルキーフックは、アプリケーションに入力された
キーボードイベントをフックします。
フックプロシージャが、False が返された場合は、キーイベントは
配信されずに捨てられます。
- 処理
- グローバルキーフックは、アプリケーションに入力された
キーボードイベントをフックします。
フックプロシージャが、False が返された場合は、キーイベントは
配信されずに捨てられます。
- 引数
-
(in)WSCbool (*proc)(long,WSCbool) | フックプロシージャ |
- 返値
- なし。
- 注意
-
- サンプル
-
//グローバルキーフックハンドラ関数
WSCbool keyhook(long key,WSCbool){
if (key == WSKEY_return){
return False; //キーイベントを捨てます。
}
return True; //キーを配信します。
}
void sample_proc(WSCbase* object){
//グローバルキーフックの設定を行います。
WSGIappKeyboard()->setGlobalKeyHook(keyhook);
}
Document Release 3.90 For Use with WideStudio/MWT Release 3.90, Summer 2005 WideStudio/MWT Home | Up to Copyright(C) WideStudio/MWT Development Team, 1999-2005 | | Last modified: June 25, 2005 | |