投稿日 | : 2006/02/13(Mon) 18:58 |
投稿者 | : 花ちゃん |
Eメール | : |
URL | : |
タイトル | : Re^3: フリガナ取得いついて |
> で、フリガナ変換は一応できるのです。が、フォーカスが他に移動したりするとエラーがでるので
す。
OS やVBのバージョン等環境は?
フォーカスが移動した時ではなく、IMEの変換の途中(未確定状態)の時に他のコントロールに
移動したりするとVB事落ちてしまうと言う事ですか?
IMEの変換を確定してからなら移動しても問題ありませんよ。
漢字を入力しているテキストボックスのtxtTokField_LostFocus イベントで
Call Furigana_End の処理をすればいいのでは。
私の環境では上記を追加すれば落ちる事もエラーも発生しません。
(WindowsXP(Home SP2) VB6.0(SP6))
スタック領域の不足です のエラーがでるのは、Furigana_Start → Furigana_End →
Furigana_Start → Furigana_End のような動作をせず、Furigana_Start → Furigana_Start
のような動作をするから起きるのです。
もっとも、ImmGetContext と ImmGetCompositionString と ImmReleaseContext
だけのAPIでリアルタイムにフリガナを取得する事ができます。(態々サブクラス化しなくても)
ここのサンプル(No.210)のように
又は、魔界の仮面弁士さん 03/04-15:18 No.2964 の投稿のタイプライブラリーを使わせて
もらうとか。