VBAユーザーフォーム画像上に線を引きたい


まるさん  2005-11-24 03:54:46  No: 92864

http://www.andypope.info/vba/userformdraw.htm    にて、
APIを用いたユーザーフォーム上で線や文字を描くプログラムが紹介されてます。
このプログラムを使用してみたのですが、フォーム上に画像を配置すると
線を引いたときに線や文字が画像の下に隠れてしまって見えなくなります。
プロパティで画像を背後に移動してみたのですが、線や文字はコントロールツールとは異なりますので、線や文字が見えるようにはなりませんでした。
imageにイメージを表示しても、このプログラムでフォーム上に引いた線が見えるようにするにはどうしたら良いでしょうか?
ちょっとしたアドバイスでも構いませんので識者の方々にお答え頂けると嬉しいです。


Blue  2005-11-24 08:47:05  No: 92865

> フォーム上に画像を配置すると
ということはImageコントロールを使っているということでしょうか?

> imageにイメージを表示しても、このプログラムでフォーム上に引いた線が見えるようにするにはどうしたら良いでしょうか?
これを実現するには、Imageコントロールを利用しないで、自力で画像をBitBlt関数を使って表示させるしかないです。


Blue  2005-11-24 08:49:48  No: 92866

あれ?

> VBAユーザーフォーム画像上に線を引きたい
画像に対してだけでしょうか?
ユーザフォームと画像に線を引くには先ほどのやり方になりますが、
Imageコントロール上の画像にならば、Imageコントロールのデバイスコンテキストに対して線をかけばいいのでは?


まるさん  2005-11-24 18:07:49  No: 92867

Blueさん、こんにちは。アドバイスいただき有難う御座います。

>ということはImageコントロールを使っているということでしょうか?
はい。ツールボックスのイメージコントロールです。

>Imageコントロールを利用しないで、自力で画像をBitBlt関数を使って表示
>IImageコントロールのデバイスコンテキストに対して線をかけば・・・?
この2つについてどの段階で、どの様なコードで書けば良いでしょうか?
ExcelVBAでの書き方をお願いしたします。


Blue  2005-11-24 18:30:42  No: 92868

> この2つについてどの段階で、どの様なコードで書けば良いでしょうか?
> ExcelVBAでの書き方をお願いしたします。

> ちょっとしたアドバイスでも構いませんので
じゃないのか。。。

UserFormのウィンドウハンドルを取得し、それからデバイスコンテキストを取得し、
それに対して描画します。

というか、
http://www.andypope.info/vba/userformdraw.htm  
のやり方と全然違います。見てみたらクリップボードを使ってExcelでつくった図形とかを描画しているようです。
# 解析する気はないです。


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

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






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