はじめまして。初投稿です。過去ログではいつも皆様にお世話になってます。
Unicodeで表示できる漢字について質問させていただきます。
Unicode形式のテキストファイルに含まれるJIS第3/第4水準漢字をRichEditに読み込みたいのですが「?」になります。DelphiのRichEdit内部はShift-Jisで処理しているのでShift-Jisに無い漢字を読み込もうとすればこの現象が起きるのはわかっています。WindowsNT系であればTntUnicodeControls(*)を使って表示できますがWindows9x系では表示できません。ところが、WindowsMEに付属しているワードパッドでUnicodeテキストファイルを開くと正常に漢字が表示され編集もできます。ワードパッドではどのような処理をしているのでしょう?Windows9x系のOS上でもワードパッドのようにJIS第3/第4水準漢字を表示・編集させることは出来ないでしょうか?どなたかご存知の方がいらっしゃいましたらご教授ください。
開発環境:Delphi7Pro/WindowsXP
(*)http://tnt.ccci.org/delphi_unicode_controls/
95 環境は無いので何とも言えませんが...
WordPad で読めるのであればおそらく EM_STREAMIN メッセージに
SF_TEXT or SF_UNICODE を指定すれば読めるはずです。
ただし、Unicode テキストの先頭の BOM は取り除いて読み込ませる
必要があります。
残念ながら教えていただいた内容では出来ませんでした。調べてみるとWindows9x系ではRichEdit1.0のようでSF_UNICODEは指定できないみたいです。
いろいろと考えた末、TextOutWを使ってオーナードローでエディタを作ろうと思います。主題から反れますが、どなたかオーナードローのエディタについてどこか参考になるサイトを教えていただけませんか?特にIMEのからの入力関係について無知なので、その辺りを勉強したいです。(TEditorなどもオーナードローしているようですが高機能で難しく理解の途中で挫折してしまいました)
http://tnt.ccci.org/delphi_unicode_controls/
とかですか。
↑
すでに元発言者がリンクしてましたね(^-^;A
すみません。
http://yokohama.cool.ne.jp/chokuto/urawaza/message/
のEM_STREAMINが参考になるかもしれません
ツイート | ![]() |