ページ 11

DXライブラリにおける日本語入力

Posted: 2013年3月22日(金) 21:06
by MoNoQLoREATOR
DXライブラリを使用すると(DxLib_Init()が呼ばれると)強制的に直接入力状態になり、そのアプリケーション内では以後日本語入力ができません。
KeyInputString関数を用いた場合も、直接入力しかできず、日本語入力ができません。
また、独自に親ウィンドウ、その中にINPUT子ウィンドウを作成し、ProcessMessage関数を呼ばず独自にメッセージ処理を行った場合でも直接入力しかできません。(つまりProcessMessage内で日本語入力が封じられているというわけではない)
KeyInputString関数とは別に半角文字列専用の関数が用意されているということは、KeyInputString関数を使えば全角文字も入力できるようになっているということです。
ということはこの挙動は意図された挙動ではないはずです。

私以外に同じ症状の方はおられませんか?
また、何が原因で、どうしたら良いのでしょうか?

OS:Windows8
DXライブラリ:3.10a

Re: DXライブラリにおける日本語入力

Posted: 2013年3月22日(金) 22:14
by h2so5
IMEは何を使用していますか?
IMEとDXライブラリの相性によっては全角入力ができない場合があるようです。

Re: DXライブラリにおける日本語入力

Posted: 2013年3月23日(土) 10:01
by MoNoQLoREATOR
普段は Baidu IME を使っているのですが、Microsoft IME で試したところ、KeyInputString関数において全角入力を行うことはできました。
ただし変換候補は表示されませんでした。
また、親ウィンドウ・INPUT子ウィンドウを作成する方法では依然として全角入力を行うことはできませんでした。

おそらくDXライブラリが全角入力を禁止したりKeyInputString等の関数内で半角/全角ボタンが押されたときだけ半角・全角を切り替えたりしているのだと思うのですがこれをどうにかすることはできないのでしょうか。

Re: DXライブラリにおける日本語入力

Posted: 2013年3月23日(土) 11:47
by h2so5
Baidu IMEで入力できないのは前からですが、
Microsoft IMEで変換候補が表示されないのはWindows8関係のような気がします。

本家に聞いたほうがいいでしょう。

Re: DXライブラリにおける日本語入力

Posted: 2013年3月23日(土) 14:04
by MoNoQLoREATOR
わかりました。
DXライブラリのフォーラムで質問してみます。

その結果はこちらのフォーラムにも書いた方がよいのでしょうか?

Re: DXライブラリにおける日本語入力

Posted: 2013年3月23日(土) 17:01
by ISLe
Windows 8におけるIME APIについての分かりやすい記事。
【#モリトーク】第36話:Windows 8にまつわるIMEの裏事情 - 窓の杜

Re: DXライブラリにおける日本語入力

Posted: 2013年3月24日(日) 01:52
by MoNoQLoREATOR
よくわかりました。
ということは、入力中の文字列や変換候補が表示されないのはwindows8であることが原因で、そもそも直接入力しかできない場合は“Text Service Framework”APIを利用するIMEを使用していることが原因ということですか。
しかしそうなると、教えていただいたサイトにも書いてある通り、今では少数派の“Input Method Manager”APIを利用するIME向けにDXライブラリが作成されているということになります。
少数派に合わせた理由が何かあるのでしょうか。
ということをここに書いてもあまり回答を期待できないのですよね。
DXライブラリのフォーラムに書いておきます。

Re: DXライブラリにおける日本語入力

Posted: 2013年3月24日(日) 10:49
by softya(ソフト屋)
同じ質問なので、相互リンクをお願いします。

>少数派に合わせた理由が何かあるのでしょうか。

IMM32は古いので、IMM32に対応しているIMEしなかった時代から有るからでしょう。
キーボード系はDXライブラリの2001年ごろからある機能みたいですし、今まで積極的に変更する理由がなかったのでしょうね。
Text Services Framework自体はXPから標準搭載です。

Re: DXライブラリにおける日本語入力

Posted: 2013年3月24日(日) 12:41
by MoNoQLoREATOR
すみません相互リンクを貼るのを完全に忘れていました。
DXライブラリの質問掲示板
DXライブラリの質問掲示板の方にもここのURLを貼ろうかどうか迷いましたが、httpが入った文章の投稿が禁止されているので、あまりURLは貼らない方が良いのかなと思い、やめておきました。
必要であればあちらからURLを貼るように促されるはずですからそれを待ちます。
それにしても、あちらにはフォーラムルール等が見当たらないのですが、用意されていないのでしょうか。
softya(ソフト屋) さんが書きました:>少数派に合わせた理由が何かあるのでしょうか。

IMM32は古いので、IMM32に対応しているIMEしなかった時代から有るからでしょう。
キーボード系はDXライブラリの2001年ごろからある機能みたいですし、今まで積極的に変更する理由がなかったのでしょうね。
Text Services Framework自体はXPから標準搭載です。
なるほどそういうことでしたか。

Re: DXライブラリにおける日本語入力

Posted: 2013年3月24日(日) 12:44
by softya(ソフト屋)
それだと相互リンクに成らないので、http://を抜いた形で向こうに書いておいてください。

>それにしても、あちらにはフォーラムルール等が見当たらないのですが、用意されていないのでしょうか。
見たことないですね。

Re: DXライブラリにおける日本語入力

Posted: 2013年3月24日(日) 13:04
by MoNoQLoREATOR
わかりました。あちらにURLを貼っておきました。