ページ 11

IME操作

Posted: 2009年1月03日(土) 02:18
by 米子
いつも拝見させていただいています。

現在、DirectXにてゲームを開発しており、
そのゲーム内で日本語入力をしたいのです。

調べてみたところ「DXUTのCustomUI」「IME操作」という二つの方法が見つかったのですが、
日本語入力GUIのためにDXUTはちょっと使いたくないのです。

そこでIMEを利用しようと考えたのですが、よいサイトがみつからず
どうにもそこでつまづいてしまっています。。。

だれかご教授おねがいできないでしょうか?
または、よい参考サイトさんなどあればいただけるとうれしいです。



PS)
猫でも~はみましたが、WindowsAPIでの方法がメインで
どうにも理解できませんでしたorz

Re:IME操作

Posted: 2009年1月03日(土) 11:19
by 御津凪
何年か前にDirectXでIME入力を実装してみたことがありましたが、
あのときは非常に扱いづらく、ソースを棄ててしまったので見せられませんが…。

猫でも~で使われている WindowsAPI を使った実装法で書いていたものでしたが、
確か DXUT も内部で WindowsAPI を使っていると思います。

まず、日本語入力はメッセージ処理で行います。
最低限必要な処理は、
・日本語入力が可能かどうか
・日本語入力中(未変換時)の画面への表示
・日本語変換中の画面への表示
・変換候補リストの表示(無くても処理は出来る)

です。これらは猫でも~で全部のっているはずなので、
後は実装の仕方です。

Re:IME操作

Posted: 2009年1月03日(土) 18:43
by dic
モードレスダイアログのテキスト入力ではダメでしょうか?

Re:IME操作

Posted: 2009年1月06日(火) 05:50
by 米子
>>御津凪さん
猫でも~ですと、文字列の表示にエディットボックスを利用しているようですが・・・

>>dicさん
ダイアログは見栄えの面でつかいたくないです;

Re:IME操作

Posted: 2009年1月06日(火) 06:05
by SCI
米子さん
>猫でも~ですと、文字列の表示にエディットボックスを利用しているようですが・・・
GUI環境の概観や表示機能と日本語入力は分離して考えるべきです。
別に特定のGUI環境とWindowsAPIの間に必然的な結合があるわけではありません。

Re:IME操作

Posted: 2009年1月06日(火) 10:29
by 御津凪
> 猫でも~ですと、文字列の表示にエディットボックスを利用しているようですが・・・

あちらの方法はメインとなるエディットボックスをサブクラス化して、
そのプロシージャの中でIME関連のメッセージ処理やWindowsAPI処理を行っていますね?

つまり、DirectXではメインウインドウのプロシージャでその処理を行えば良い、というわけです。