[TSF]サンプルソースを読んでみました
う~ん、ちょっと難しいですね。 とりあえず、_HandleCharacterKeyの関数の中をいじると、
変換の作業ができそうだなぁ ということがわかりました。
if (tfSelection.range->SetText(ec, 0, &ch, 1) != S_OK)
goto Exit;
ここで、文字列が追加されます。 んで、このままだと、
文字列がどんどん後ろに追加されていくだけで、ローマ字変換に使うには
ちょっと上手くいかないんですよ。
もう少し、調べていくと。
SetTextのあとに、
pRangeComposition->Clone( &tfSelection.range );
を入れてあげることによって、上手く行くようです。
このへんはよくわからなくて、Social IMEを参考にさせていただきました。
で、ここまで実験してきてですね。
自分がやりたかったのは、ローマ字入力のプログラムではないなぁ と
思ってしまいました。
ローマ字変換には、ローマ字用のテーブルと変換を行って初めて上手く行くわけで、
その後に、読み仮名になって変換を行って、最終的に変換結果が出てきますよね。
それでは、ありふれているIMEと一緒で面白く無いですよね。
キーストロークから、変換までを一気に持っていく方が、アホそうでいいと思いませんかね?
どうせ、組み合わせの海に溺れてしまうなら、もっと大きな海に落ちてみたほうが面白そう
ですよね。
一番、可能性の低そうなところから、攻めて見るところに面白みがありそうに思います。
ということで、一旦、C++のプログラムはやめて、C#へプロジェクトを移行します。
そうそう、IMEをどんな構成にしたいか話してなかったですね。
IMEの部分は、キーストロークを受け止めるのと、表示のみをサポートして、
漢字変換は、サービスで作っちゃおうかなぁ と思っていました。
それなら、C#でプログラムを書くことができますので、作るのも楽かなぁ なんて思っています。
まずは、キーストロークから変換できるか実験してみないといけませんね。
明日は仕事ですので、火曜日以降に実験します。
投稿日時 : 2011年5月2日 0:22
Tweet

コメントを追加