中本です。 On Sat, 30 Sep 2006 07:43:07 +0900 Yoshiyuki Masutomi <[EMAIL PROTECTED]> wrote:
> [EMAIL PROTECTED] です。 > > Takashi Nakamoto wrote: > >> Windows版の未解決の問題: > >> - Win 95系の対応 > >> - IMEとしてATOK14を使っていると、結果が半角カナで返ってくる > >> (さっき発見しました) > >> - 100文字以上の文字列のフリガナが表示されない > > > > これに追加で、 > > - ATOKとMS-IMEでは結果が異なる > > - FURIGANA関数を使っているCalcファイルを開くと、開いた直後には正し > > い結果が表示されず、何も表示されなかったり、意味不明な文字列が表示さ > > れる。 (関数を入力し直したりすれば直る) > > > > 前者については、とても頭の痛くなる問題です。どうしたものか... > 1.前にも示した、 > http://www.psytec.co.jp/tips/0104/ > が参考になると思いますが、OS(IMEバージョン?)によって返してくる結果が異 > なるのでそれに対応しないとならないと思います。 このページを見る限りでは、OSのバージョンを見て、Win95系の場合は Shift_JISに変換して、 WinNT系の場合はUnicode(LE)に変換して、 ImmGetConversionListWに渡すのがよいということでしょうか。 > 3.99文字で区切って末尾 > の文字コードを確認、2バイト文字の上位のコードの場合は1文字削除して変 > 換。削除した一文字は以降の文字列の先頭に追加、以上を繰り返す。と言う所 > でしょうか。 これも考えてみたのですが、例えば99文字目が「中」で100文字目が「本」だっ た場合には、該当する部分の結果として期待するのは「なかもと」ですが、 「ちゅう」と「ほん」に分かれて逆変換されそうです。 そういえば、これは Shift_JIS コードで200バイトの制限がかかっているのか、 それとも Unicode で200文字の制限がかかっているのか分かりませんね。 # っていうか、文字(バイト)数の制限があるなんてどこにも書いてへんし > > また、後者については原因は分からないのですが、 > > m_hWnd = GetActiveWindow(); > > hIMC = ImmGetContext(m_hWnd); > > hKL = GetKeyboardLayout(0); > > あたりが怪しい気がしています。ウィンドウが開く前にこのコードが実行さ > > れているとか...curvirgoさんのほうでも再現しますでしょうか? > 再現しました。 > "m_hWnd = GetActiveWindow();" > あたりかなぁと思うんですが... それならば、仮想的にウィンドウを作るというのはダメなのでしょうか? -- 中本 崇志 ( Takashi Nakamoto ) E-Mail : [EMAIL PROTECTED], [EMAIL PROTECTED] Homepage: http://bd.tank.jp/ blog : http://bd.tank.jp/diary --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
