石野光仁 Blog

開発、C#、ASP.NET、アイライトの活動について、いろいろ

AILight Banner
AILight Blog

プロフィール

石野光仁 Blog

目次

Blog 利用状況

記事分類

過去の記事

タグ

[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


コメントを追加

タイトル
名前
URL
コメント