tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板 [ツリー表示へ]   [Home]
一括表示(VB6.0)
タイトル透けて見える画像を表示させたい
記事No14713
投稿日: 2010/05/27(Thu) 10:06
投稿者atroo
いつも 皆様にはお世話になっています。

Formに PictureBoxを配置し そのなかに複数のコントロールを配置しています。
それらのコントロールなどを 
薄い色で覆い隠し 透けて見えるようにしたいのです。

自分でやってみたのですが 
PictureBoxの大きさの透過GIFをつくり
Imageでは そのコントロールの下に隠れてしまい
PictureBoxでは 逆にコントロールが隠れてしまいました。

すべてのコントロールはEnable=Falseにしていますので イベントを認識させる必要はありません。

説明がうまくありませんが よろしくご教授ください。

環境は VB6+SP6 Vista です。

[ツリー表示へ]
タイトルRe: 透けて見える画像を表示させたい
記事No14715
投稿日: 2010/05/27(Thu) 13:50
投稿者
> すべてのコントロールはEnable=Falseにしていますので イベントを認識させる必要はありません。

あらかじめ透けて見えるように作った画像を表示するとか。
動作する必要がないのですから、実物そのものが見える必要もないはずですがどうでしょう?

[ツリー表示へ]
タイトルRe^2: 透けて見える画像を表示させたい
記事No14717
投稿日: 2010/05/27(Thu) 15:23
投稿者atroo
琴様 有り難うございます。

> あらかじめ透けて見えるように作った画像を表示するとか。
> 動作する必要がないのですから、実物そのものが見える必要もないはずですがどうでしょう?

すべてのコントロールを動作後(入力とか表示とか)に 全体を半透明なスクリーンにたいなもので覆う形で 表示したいのです。
ですから 前もっての画像は作れないです。

[ツリー表示へ]
タイトルRe: 透けて見える画像を表示させたい
記事No14718
投稿日: 2010/05/27(Thu) 22:50
投稿者魔界の仮面弁士
> Formに PictureBoxを配置し そのなかに複数のコントロールを配置しています。
> それらのコントロールなどを 
> 薄い色で覆い隠し 透けて見えるようにしたいのです。

直接の機能は無いので手間はかかりますが、こんな方法は如何でしょう。

《第1案》
 (1) 枠なしフォームを別途用意する。フォームの色は適当な単一色に設定(白など)。
 (2) API を使い、それを半透明のレイヤード ウィンドウにする。
 (3) 元のフォームと同じ座標に、半透明フォームを重ね置く事で対応。
 →なお、元フォームのリサイズや移動に対応させる必要がある場合は、
  サブクラス化でリサイズ等の Windows メッセージを拾うか、あるいは
  Timer で位置を監視して、半透明フォームの位置を追従させる。


《第2案》
 (1) フォーム全体を覆う PictureBox (または Frame)を用意し、
  Form上に配置されていた現行のコントロール群すべてを、
  その PictureBox 上に配置しなおす。
 (2) 下記のサンプルを用い、現行の画面内容を Picture オブジェクトに変換。
  http://support.microsoft.com/kb/161299/ja
 (3) 撮影後、コンテナとしていた PictureBox を非表示にして全コントロールを隠す。
 (4) 替わりに、先ほど撮影した (2) の画像を Form 上に表示する。
 (5) 薄い色で覆い隠す部分は、Alphablend API で対応。

[ツリー表示へ]
タイトルRe^2: 透けて見える画像を表示させたい
記事No14722
投稿日: 2010/05/28(Fri) 12:54
投稿者atroo
魔界の仮面弁士様 いつもありがとうございます。

《第2案》を テストしてみましたところ
ほぼ 考えていたとおりの処理ができました。
Alphablend は 少し難しいようでしたが いろいろ試しながらやってみようと思います。
花ちゃん様より 教えていただいた 魔界の仮面弁士様のサンプルも あわせて 試したいと思います。

ありがとうございました。


[ツリー表示へ]
タイトルRe: 透けて見える画像を表示させたい
記事No14719
投稿日: 2010/05/28(Fri) 07:17
投稿者花ちゃん
> Formに PictureBoxを配置し そのなかに複数のコントロールを配置しています。
> それらのコントロールなどを 
> 薄い色で覆い隠し 透けて見えるようにしたいのです。

何の為にそのような事をする必要があるのか知りませんが、見た目だけの問題なら
下記の魔界の仮面弁士さんのサンプルを試してはどうでしょうか?

比較的簡単だし、Form 及び コントロールを含めて半透明になるので、この方が
良い場合もあるかと思いますので...。

  http://hanatyan.sakura.ne.jp/patio/read.cgi?no=90

[ツリー表示へ]
タイトルRe^2: 透けて見える画像を表示させたい
記事No14720
投稿日: 2010/05/28(Fri) 08:45
投稿者魔界の仮面弁士
> 何の為にそのような事をする必要があるのか知りませんが、見た目だけの問題なら
> 下記の魔界の仮面弁士さんのサンプルを試してはどうでしょうか?
そんなのがありましたね。書いた本人が忘れていました。

で、その記事の No.1 (Layered Window その2) を、
(元フォームではなく)「別フォーム」に適用し、半透明化されたそれを
元フォームの手前に配置しようというのが、先(No.14718)の第1案です。

元フォーム自体を半透明化するという手もありますが、その場合、
その下のデスクトップまで透けることになります。

[ツリー表示へ]
タイトルRe^3: 透けて見える画像を表示させたい
記事No14721
投稿日: 2010/05/28(Fri) 12:40
投稿者atroo
リロードせずに 書き込んでしまったようです。
申し訳ありません。

花ちゃん様よりの教えていただきました 「魔界の仮面弁士様のサンプル」も 試してみます。
ありがとうございました。

[ツリー表示へ]