http://www.andypope.info/vba/userformdraw.htm にて、
APIを用いたユーザーフォーム上で線や文字を描くプログラムが紹介されてます。
このプログラムを使用してみたのですが、フォーム上に画像を配置すると
線を引いたときに線や文字が画像の下に隠れてしまって見えなくなります。
プロパティで画像を背後に移動してみたのですが、線や文字はコントロールツールとは異なりますので、線や文字が見えるようにはなりませんでした。
imageにイメージを表示しても、このプログラムでフォーム上に引いた線が見えるようにするにはどうしたら良いでしょうか?
ちょっとしたアドバイスでも構いませんので識者の方々にお答え頂けると嬉しいです。
> フォーム上に画像を配置すると
ということはImageコントロールを使っているということでしょうか?
> imageにイメージを表示しても、このプログラムでフォーム上に引いた線が見えるようにするにはどうしたら良いでしょうか?
これを実現するには、Imageコントロールを利用しないで、自力で画像をBitBlt関数を使って表示させるしかないです。
あれ?
> VBAユーザーフォーム画像上に線を引きたい
画像に対してだけでしょうか?
ユーザフォームと画像に線を引くには先ほどのやり方になりますが、
Imageコントロール上の画像にならば、Imageコントロールのデバイスコンテキストに対して線をかけばいいのでは?
Blueさん、こんにちは。アドバイスいただき有難う御座います。
>ということはImageコントロールを使っているということでしょうか?
はい。ツールボックスのイメージコントロールです。
>Imageコントロールを利用しないで、自力で画像をBitBlt関数を使って表示
>IImageコントロールのデバイスコンテキストに対して線をかけば・・・?
この2つについてどの段階で、どの様なコードで書けば良いでしょうか?
ExcelVBAでの書き方をお願いしたします。
> この2つについてどの段階で、どの様なコードで書けば良いでしょうか?
> ExcelVBAでの書き方をお願いしたします。
> ちょっとしたアドバイスでも構いませんので
じゃないのか。。。
UserFormのウィンドウハンドルを取得し、それからデバイスコンテキストを取得し、
それに対して描画します。
というか、
> http://www.andypope.info/vba/userformdraw.htm
のやり方と全然違います。見てみたらクリップボードを使ってExcelでつくった図形とかを描画しているようです。
# 解析する気はないです。
ツイート | ![]() |