HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2007
0423
あんこ半角・全角の切り替え6解決


あんこ

リンク

2007/4/23(Mon) 16:12:04|NO.7689

インプットボックスがあるページではかな入力、
インプットボックスがないページでは直接入力を行いたいのですが
手動ではなくて(半角全角キーを押さないで)切り替える方法はありませんか?

インプットボックスがないページはスペースキーを押して次のページに進むのですが
かな入力をしたあとだとスペースキーのキーコードの取得が出来ません。
直接入力の場合のスペースキーのキーコードは32で、かな入力の場合は229となっているのですが、かな入力になっている場合は他のキーも229になっているみたいで半角全角キーを押さないと正しく取得出来ません。

半角全角を切り替える方法、がありましたら教えていただきたいです。
よろしくお願いします。



この記事に返信する


KENTA

リンク

2007/4/23(Mon) 18:22:33|NO.7697

keybd_eventで全角・半角を変更してみたらどうです?



あんこ

リンク

2007/4/23(Mon) 22:23:26|NO.7702

KENTA様>
アドバイスありがとうございます。
keybd_event関数について調べて見たのですがどのように活用したらよいか分からず・・・
よろしければもう少しヒントがほしいです。
よろしくお願いします。



りさ

リンク

2007/4/23(Mon) 22:39:14|NO.7704

こんにちわ、りさです。

>直接入力の場合のスペースキーのキーコードは32で

全角半角に関わらず、どちらも32になりませんでしょうか?

text = "" input text repeat getkey key, 32 if key :break await 1 loop cls mes "OK"
このようなスクリプトで試したのですが、
全角半角かに関わらずループを抜けます。

このような意味ではないのでしょうか?



pizza

リンク

2007/4/24(Tue) 02:25:29|NO.7710

ベータ版は試していませんが、3.0aでonkeyジャンプ先の
iparamとwparamが229になるのが確認できました。
(WM_KEYDOWNのwparamでも)

WM_KEYUPのwparamはどちらの場合も32のようなので
割り込みジャンプを使いたいのならonkeyではなく
oncmdを使ってみて下さい。


#define WM_KEYUP 0x0101 oncmd *lb_OnKeyUp, WM_KEYUP


半角/全角切り替えは、こんな感じで出来ると思います。


#uselib "imm32.dll" #cfunc ImmGetContext "ImmGetContext" int #func ImmReleaseContext "ImmReleaseContext" int, int #func ImmSetOpenStatus "ImmSetOpenStatus" int, int himc = ImmGetContext(hwnd) ImmSetOpenStatus himc, 0 // p2が1で全角0で半角 ImmReleaseContext hwnd, himc



りさ

リンク

2007/4/24(Tue) 02:47:55|NO.7712

>onkeyジャンプ先

onkey を使われていたのですね、すみません。

>ベータ版は試していませんが

試してみたのですが、onkey はベータ版でも、wparamに229を返しているみたいです。
iparam は全角のみ常に0です。
lparam は変動しているようなのですが、いまいちよく分かりませんm(_ _)m



あんこ

リンク

2007/4/25(Wed) 11:47:22|NO.7745

りさ様、pizza様
コメントありがとうございます。
oncmdを使用して割り込み出来ました。
切り替えもこれからやってみようと思います。
ほんとうにありがとうございましたw



ONION software Copyright 1997-2023(c) All rights reserved.