トップページ > 過去ログ > 記事閲覧
入力機能の要望
名前:UL 日時: 2011/01/13 15:57

いつもDXライブラリにはお世話になっています。 機能追加の希望なのですが、 MakeKeyInputなどで作成した入力で、変換中かどうかを取得したいのですが、追加おねがいできますでしょうか?

Page: 1 |

Re: 入力機能の要望 ( No.1 )
名前:いっち 日時:2011/01/13 20:03

試したことが無いので確かなことは分かりませんが GetIMEInputData 辺りをつかうとできそうな気がします。
Re: 入力機能の要望 ( No.2 )
名前:管理人 日時:2011/01/15 21:22

いっちさんがご紹介されている GetIMEInputData から得られる情報で現状のバージョンでも 「IMEが起動しているか」 「変換候補ウインドウが出ているか」 は判断できますが「変換中かどうか」を判断することはできません Win32APIのIMEの機能を眺めていたら変換中かどうかを判断できそうでしたので、GetIMEInputData で 取得できる IMEINPUTDATA 構造体に文字変換中かどうかのメンバー変数を追加しました そのバージョンをこちらにアップしましたので、よろしければダウンロードしてください m(_ _)m http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe // VisualC++ 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe // BorlandC++ 用 (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』、VCをお使いの場合は『リビルド』をして下さい) 追加したメンバー変数はこちらです // 文字変換中かどうか( TRUE:変換中 FALSE:変換中ではない( 文字単位でカーソルが移動できる状態 ) ) int ConvertFlag ; 変換中かどうかの判断は以下の様に行ってください IMEINPUTDATA *IMEInputData ; // IMEINPUTDATA 構造体のポインタを取得 IMEInputData = GetIMEInputData() ; // GetIMEInputData の戻り値が NULL だった場合は IME による文字入力中ではないので、これをまず判定 // NULL ではなかったら ConvertFlag が TRUE かどうかを調べる if( IMEInputData != NULL && IMEInputData->ConvertFlag == TRUE ) { // 文字変換中 }
Re: 入力機能の要望 ( No.3 )
名前:UL 日時:2011/01/17 18:29

いっちさん、管理人さん。 さっそくのご返答と実装ありがとうございます。 ConvertFlagにより、想定していた実装内容を開発する事ができました。

Page: 1 |