トップページ > 過去ログ > 記事閲覧
IMEの変換入力長を制限するには
名前:koga2020 日時: 2008/09/15 17:07

環境について Windows XP SP2 VisualC++ 2008 Express Edition VisualC++用DXライブラリ(Ver2.24e --IME拡張版--) IMEで変換するために「ひらがな」などを入力すると 最初は未変換状態として、アンダーラインが引かれていたりします。 この未変換状態の文字長を38文字以下、といったように制限したいのです。 39文字目の入力ができない、といった方法の制御を想定しています。。 こういった制御は可能でしょうか? また、変換候補の長さが長い場合(郵便番号のように)   未変換状態 123−0001   変換後   東京都足立区足立南町屋張北意矢東 あくまで未変換状態の入力できる長さを対象とした制限、といった考え方を想定しています。 ご教授よろしくお願いいたします。

Page: 1 |

Re: IMEの変換入力長を制限するには ( No.1 )
名前:管理人 日時:2008/09/15 21:28

変換前の文字数を制限すると変換すれば文字数的に収まるのに・・・ということに ならないでしょうか・・・?
Re: IMEの変換入力長を制限するには ( No.2 )
名前:koga2020 日時:2008/09/16 01:12

もちろん結果としてはその通りです。 ただ、入力テストをしていたところ、未変換の文字がダラダラッと 入力枠の外に出ることが可能だとわかったのです。 見た目に悪いので対策できればと思いました。 未変換文字を表示するときに、その文字数を制限するだけでは 見えない所で入力が継続できている為に、実質的な解決には至らないと思い、質問をさせて頂きました。
Re: IMEの変換入力長を制限するには ( No.3 )
名前:管理人 日時:2008/09/16 01:31

見た目が悪いのが改善されるのは良いですが、 文章の末尾が漢字になる際に明らかに支障を来たす と思うのですが、良いのでしょうか? 因みにまだ実装していませんが文字数制限は恐らく可能だと思います
Re: IMEの変換入力長を制限するには ( No.4 )
名前:koga2020 日時:2008/09/16 20:04

そのような支障を来たすかもしれません。 ただ、30文字以上を打ち込んで変換する用途の場合のみに思われます。 個人的には、大抵20文字以下の   ひらがな入力 > 変換 > 漢字確定 を行うケースが多いように思うのと、画面の制約を1行にしたいので 文字数制限ができると助かります。 また、DOS時代のようにIMEの入力文字表示・変換候補表示を 最下段に表示するスタイルを予定しているので、上記内容となっております。
Re: IMEの変換入力長を制限するには ( No.5 )
名前:管理人 日時:2008/09/22 06:57

すいません、ご返信が遅くなりました そのような理由でしたか、了解しました 早速文字数制限機能を実装したバージョンをアップしましたので、 宜しければお使いください http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe //VC用 http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe //BCC用 (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』、VCをお使いの場合は『リビルド』をして下さい) 以下の関数を追加しました // IMEで入力できる最大文字数を MakeKeyInput の設定に合わせるかどうかをセットする // Flag = TRUE:あわせる FALSE:あわせない(デフォルト) int SetInputStringMaxLengthIMESync( int Flag ) ; 要は、MakeKeyInput の最大文字数制限にFEPの入力も影響を 受けるようにするかどうかを設定する関数です TRUE を引数に渡して呼ぶと以降 MakeKeyInput の設定が反映 されるようになります
Re: IMEの変換入力長を制限するには ( No.6 )
名前:koga2020 日時:2008/09/22 17:49

SetInputStringMaxLengthIMESync関数の動作を確認いたしました。 早速の関数の追加ありがとうございます。 うまくニュアンスを伝えきれていなかったようですが   1.MakeKeyInput の最大文字数制限   2.FEPの入力長 というように、別個に設定できるようにすることは可能でしょうか? 指定する長さが違うときの想定動作   1の長さ > 2 のとき 1度に変換できる文字の長さ(変換中文字の表示領域)が限定されるが、何度か変換していくことで、結果的には1の長さまで入力可能   1の長さ < 2 のとき 変換文字領域は長いが、変換後に反映されるのは結果的に1の長さまで。(DOS風) 必要性のニュアンスを伝えずらいのですが、このような仕様だと入力のしやすさと表現上の点で助かります。 よろしくお願いします。
Re: IMEの変換入力長を制限するには ( No.7 )
名前:管理人 日時:2008/09/23 22:26

可能です というわけで、FEPの入力長を制限できる機能を追加したものをアップしましたので 宜しければお使いください http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe //VC用 http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe //BCC用 (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』、VCをお使いの場合は『リビルド』をして下さい) 追加した関数は以下の関数です // IMEで一度に入力できる最大文字数を設定する( 0:制限なし 1以上:指定の文字数で制限 ) int SetIMEInputStringMaxLength( int Length ) ; 文字数、というか、バイト数ですが・・・
Re: IMEの変換入力長を制限するには ( No.8 )
名前:koga2020 日時:2008/09/24 00:04

ありがとうございます。 バッチリです☆ 最下段にDOS版FEP ATOK8風の専用の行を設置することができました。

Page: 1 |