[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2007/02/15(Thu) 16:50
投稿者名:BT6
Eメール:
URL :
タイトル:
RichTextBoxへのビットマップの貼り付け
こんにちは。

VB 6.0でRichTextBoxにビットマップの貼り付けを行っています。

複数のビットマップを貼るために

  RichTextBox1.OLEObjects.Add , , , "Picture.bmp"

を何度も実行していると、実行する度にバックグラウンドでmspaint.exeが起動してしまい、10数枚貼ったところでリソース不足のRunTimeエラーが発生してしまいます。

RichTextBoxにビットマップの貼り付けを行う場合、このやり方は間違っているのでしょうか?
正しい方法があれば教えてください。

投稿時間:2007/02/15(Thu) 23:43
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re: RichTextBoxへのビットマップの貼り付け
> 複数のビットマップを貼るために
>
>   RichTextBox1.OLEObjects.Add , , , "Picture.bmp"

実際には、こんな事していませんよね。
ここへ掲載する場合は、間違いのないように実際に使っているコードをコピー&ペースト
して掲載して下さい。

> RichTextBoxにビットマップの貼り付けを行う場合、このやり方は間違っているのでしょうか?
> 正しい方法があれば教えてください。
今のままでも間違いではありませんが、使い方が間違っているかと思います。
リンク貼り付けをしたら当然そのようになります。

単に表示したいだけなら、クリップボード経由で貼り付けるとかすればいいのでは。
下記のコードを試して見て下さい。
Option Explicit
Private Sub Command1_Click()
   Set Picture1.Picture = LoadPicture("c:\test.bmp")
   Clipboard.Clear
   Clipboard.SetData Picture1.Picture
   DoEvents
   RichTextBox1.SetFocus
   SendKeys "^V"
End Sub

Private Sub Form_Load()
   With Picture1
      .AutoRedraw = True
      .ScaleMode = vbPixels
      .AutoSize = True
      .Visible = False
   End With
End Sub

投稿時間:2007/02/16(Fri) 11:55
投稿者名:BT6
Eメール:
URL :
タイトル:
Re^2: RichTextBoxへのビットマップの貼り付け
> 実際には、こんな事していませんよね。
> ここへ掲載する場合は、間違いのないように実際に使っているコードをコピー&ペースト
> して掲載して下さい。

確かに違っています。(カンマが1つ多いですね。)
失礼しました。
実際のコードは下のようになっています。

  Call SavePicture(picTemp.Image, App.Path & "\pic.bmp")
  RichTextBox.OLEObjects.Add , , App.Path & "\pic.bmp"
  Call Kill(App.Path & "\pic.bmp")
  RichTextBox.SelStart = Len(.Text)

> 単に表示したいだけなら、クリップボード経由で貼り付けるとかすればいいのでは。

ご提示頂いたサンプル・コードでうまく行きました。
ありがとうございます。