リッチテキストボックスのTextRTFのOSによる違いを無くすには?


くり坊  2006-07-01 01:37:24  No: 95917

開発環境:
  WindowsXP Pro SP2
  Visual Basic 6.0 Pro SP6

お世話になります。
RTFをHTMLに変換するソフトを作成しようと思っているのですが、
リッチテキストボックスのTextRTFプロパティの値が、OS(98/Me、2000/XP)で異なるようで困っています。

上記の確認は、リッチテキストボックスの内容が変わったら、TextRTFプロパティの値をテキストボックスに書き出すソフトを作成し、98とXPで実行して行いました。
Visual Studio Installer 1.1でインストーラを作成し、RCHTXJP.DLL、RICHED32.DLL、RICHTX32.OCXもインストールされるようにして試しましたが、結果は変わりませんでした。
さらに、OS側に元から入っているものを無効にし、作成したソフトをインストールしても結果は変わりませんでした。

98とXPに入れたDLL、OCXが同一にも関わらずこのような結果になってしまうようです。
これが正常で当たり前なことなのかも判断できないため、ご質問させていただきました。
OSが98/Me、2000/XPのどちらでも、同一のTextRTFの値を取得することは可能でしょうか?


K.J.K.  2006-07-02 04:12:06  No: 95918

元となっているRichEditはOSごとにかなり仕様が変わっています。
# 機能が追加されていく、と書くべきなのか?

一方でVB6のRichTextBoxはRichEdit Ver.1.0をラッピングしたもの
に過ぎません。さらに、このRichEdit Ver 1.0も実は2形態あって、
A,OSが2000以降では、Ver 3.0を内部で呼び出している。
B,それより前のOSでは単体で実装している。
となっています。

で、AとBでは様々なところで違いが出ています。有名なところ
だけでも、Aの内部文字コードはUnicode、Bのそれは日本語版だと
Shift-JISというかなりの違いがあります。

この文字コードやフォント、言語の指定に関するところは、それ
だけで異なってしまうでしょうから、RichEdit Ver 1.0を元に
したコントロールを使う限りは普通に発生する違い、ということ
になると思われます。


くり坊  2006-07-03 07:30:21  No: 95919

K.J.K.さん、ご返事ありがとうございます。

内部でさらに呼び出しているとは思いもしませんでした。
RichEdit Ver 1.0を基にしている以上、
OSによって差が出てきてしまうのは仕方が無いことなのですね。

ご丁寧にありがとうございました。
地道にOS(RTFのバージョン)ごとにコードを書いていくことにします。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加