PB 電子会議室
発言No. | 更新日 | 題名(クリックすると発言内容と関連するコメントが表示されます) |
---|---|---|
18946 | 03/03/01 18:33:00 | RE(1):PB5.0.02: SetKeyboardStateについて By Chicchi |
18945 | 03/03/01 16:46:24 | PB5.0.02: SetKeyboardStateについて By Chicchi |
カテゴリ:PowerBuilderの開発環境
日付:2003年03月01日 16:46 発信者:Chicchi
題名:PB5.0.02: SetKeyboardStateについて
いつもお世話になります。
PBで自作のソフトキーボードを作るべく、文字を表したボタンをクリックされると
Win32APIのkeybd_event関数を実行するウィンドウを作成していますが、Shiftキー
と同時に押さなければならない文字の場合、GetKeyboardState関数と
SetKeyboardState関数を組み合わせてもうまく動作しません。
【\"を\"の場合】
long l_rc1, l_rc2
char KeyState[256]
constant long VK_0 = 48
constant long KEYEVENTF_EXTENDEDKEY = 1
constant long KEYEVENTF_EXTENDEDKEY_KEYUP = 3
// ターゲットコントロールにフォーカスを設定
sle_1.SetFocus( )
// Shiftキーを押された状態に変更
l_rc1 = GetKeyboardState( KeyState )
KeyState[16] = Char(1)
l_rc2 = SetKeyboardState( KeyState )
// \"わ\"のキーのキーストロークを合成(かな入力モード)
keybd_event( VK_0, 0, KEYEVENTF_EXTENDEDKEY, 0 )
keybd_event( VK_0, 0, KEYEVENTF_EXTENDEDKEY_KEYUP, 0 )
これを実行すると、sle_1には\"を\"ではなく\"わ\"が追加されてしまいます。
GetKeyboardState・SetKeyboardStateとも戻り値は0以外の数値なので、エラーでは
ないと思うのですが、正しい使用方法をご存知の方はおられますでしょうか?
付加情報:
PowerBuilder Version (記載なし)
Client SoftWare
OS Windows98
DBMS Oracle SQL*Net 2.3
Browser (記載なし)
Server SoftWare
OS (記載なし)
DBMS Oracle 7.3
WebServer (記載なし)
Copyright © 2013 Power Future Co., Ltd.