OLEオブジェクトのサイズを変更するプログラムです。

以前のプログラムに以下を書き加えます。

RichTextBoxにBitmapを挿入する方法

これでOLEオブジェクトのみが選択されているときに

を実行するとサイズが1/2になります。OLEオブジェクトが選択されていないとき、それ以外の文字も選択されている場合は何も起きません。

それからマウス操作でOLEオブジェクトのサイズを変更されたときに他のRichTextBoxにも反映されるようにしておきましょう。

マウスボタンが押されたときと離されたときにSelectedRtfを比較して異なっていれば変更するというプログラムでいけるのかと思ったらそうではなかったらしく、保存するたびにデータが変更されるようです。そこでRtfの内容をしらべてオブジェクトの表示サイズを取得しています(GetOleObjectSizeTextメソッド)。

オブジェクトの表示サイズが異なっていれば、SetSelectedRtfメソッドを利用して内容を同期させています。

ところでこの処理をするときにオブジェクトのサイズが一瞬、大きくなったり小さくなったりするのでBeginControlUpdate、EndControlUpdateメソッドを自作しました。再描画を一時停止することでオブジェクトの表示サイズを変更するときの違和感を減らしています。