C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[24]: PictureBoxの透過処理 その2 [1]


(過去ログ 54 を表示中)

[トピック内 33 記事 (21 - 33 表示)]  << 0 | 1 >>

■30176 / inTopicNo.21)  Re[16]: PictureBoxの透過処理 その2
  
□投稿者/ .SHO (472回)-(2008/12/18(Thu) 18:07:37)
No30175 (Kei さん) に返信

> 皆さんに頼りっきりで申し訳ないのですが、ご教授お願いできませんでしょうか?

○の周りが背景と同じ色の四角い画像じゃ、やっぱダメなんですか?

引用返信 編集キー/
■30177 / inTopicNo.22)  Re[16]: PictureBoxの透過処理 その2
□投稿者/ .SHO (473回)-(2008/12/18(Thu) 18:11:48)
No30175 (Kei さん) に返信

> そんな感じで.SHOさんに頂いた「TransparentBlt」というキーワードで色々調べているのですが…
> ちょっと難しいです。
>
> このサイトを参考にしようと思っているのですが、どこにコードを記述すればいいのやら…

「TransparentBlt」を使用するなら、記述する場所はWM_PAINTの中です。
引用返信 編集キー/
■30178 / inTopicNo.23)  Re[17]: PictureBoxの透過処理 その2
□投稿者/ Kei (19回)-(2008/12/18(Thu) 18:12:31)
No30176 (.SHO さん) に返信

・フォームに背景画像がある
・数十個のボタンやラベルを動的に入れ替える
・複数のフォーム(全部背景画像や位置が異なる)でボタンやラベルを使いまわす

という仕様なのでその方法だとちょっと厳しいかなぁと。。。
引用返信 編集キー/
■30179 / inTopicNo.24)  Re[17]: PictureBoxの透過処理 その2
□投稿者/ Kei (20回)-(2008/12/18(Thu) 18:15:16)
No30177 (.SHO さん) に返信

> 「TransparentBlt」を使用するなら、記述する場所はWM_PAINTの中です。

コールバック関数の中ですよね?
コードにはそれっぽい個所がないのですが…

たぶん根本的に勘違いしているかも。
Callback関数って勝手にどっかで生成されてて、そこにWM_PAINTを付け足す訳ではないって事ですかね?

自分で一からどこかに記述するとしたらどこに書けばいいのでしょう?

引用返信 編集キー/
■30180 / inTopicNo.25)  Re[18]: PictureBoxの透過処理 その2
□投稿者/ .SHO (474回)-(2008/12/18(Thu) 18:18:42)
No30179 (Kei さん) に返信

> 自分で一からどこかに記述するとしたらどこに書けばいいのでしょう?

そっか、.NETですもんね。
OnPaintとか、なんかないっすか?^^;

引用返信 編集キー/
■30181 / inTopicNo.26)  Re[19]: PictureBoxの透過処理 その2
□投稿者/ Kei (21回)-(2008/12/18(Thu) 18:24:14)
No30180 (.SHO さん) に返信

> OnPaintとか、なんかないっすか?^^;

Paintというイベントはありますがこれの事でしょうか?
コード開いてもデフォルトでは何も書かれてませんが…
引用返信 編集キー/
■30182 / inTopicNo.27)  Re[20]: PictureBoxの透過処理 その2
□投稿者/ .SHO (475回)-(2008/12/18(Thu) 18:25:03)
No30181 (Kei さん) に返信

> コード開いてもデフォルトでは何も書かれてませんが…

何か書かれてないとまずいのですか?
引用返信 編集キー/
■30183 / inTopicNo.28)  Re[21]: PictureBoxの透過処理 その2
□投稿者/ Kei (22回)-(2008/12/18(Thu) 18:30:29)
No30182 (.SHO さん) に返信

あれ?
いや、すいません、ここにコールバックが自動でかかれてるのかと思いました(笑)
じゃあこの中に自分でコールバックを記述すればいいのでしょうか?

色々調べているのですが、「コールバック」を一つの手法というか概念としての説明もあれば、「callback関数」という物を説明してるサイトもあります。
色んな「コールバック」があって、しかもどれも別物っぽくて…
正直、何を記述すればいいのか皆目検討つきません…
引用返信 編集キー/
■30184 / inTopicNo.29)  Re[22]: PictureBoxの透過処理 その2
□投稿者/ .SHO (476回)-(2008/12/18(Thu) 18:33:48)
No30183 (Kei さん) に返信

> あれ?
> いや、すいません、ここにコールバックが自動でかかれてるのかと思いました(笑)
> じゃあこの中に自分でコールバックを記述すればいいのでしょうか?

そもそも「TransparentBlt」を記述する場所を探してたんじゃないの?

引用返信 編集キー/
■30185 / inTopicNo.30)  Re[23]: PictureBoxの透過処理 その2
□投稿者/ Kei (23回)-(2008/12/18(Thu) 18:38:29)
No30184 (.SHO さん) に返信

> そもそも「TransparentBlt」を記述する場所を探してたんじゃないの?

その通りなのですが、動かす為にはコールバックも必要なのではないのですか?

http://www13.plala.or.jp/kmaeda/winc/colorkey.htm
このサイトを見る限り必要な気がするのですが…
引用返信 編集キー/
■30186 / inTopicNo.31)  Re[24]: PictureBoxの透過処理 その2
□投稿者/ .SHO (477回)-(2008/12/18(Thu) 18:46:05)
No30185 (Kei さん) に返信

> その通りなのですが、動かす為にはコールバックも必要なのではないのですか?

だからpaintがコールバックなんじゃないですか?
知らないけど…
引用返信 編集キー/
■30187 / inTopicNo.32)  Re[18]: PictureBoxの透過処理 その2
□投稿者/ 渋木宏明(ひどり) (992回)-(2008/12/18(Thu) 18:50:06)
渋木宏明(ひどり) さんの Web サイト
2008/12/18(Thu) 19:16:51 編集(投稿者)

>○の周りが背景と同じ色の四角い画像じゃ、やっぱダメなんですか?

> ・フォームに背景画像がある
> ・数十個のボタンやラベルを動的に入れ替える
> ・複数のフォーム(全部背景画像や位置が異なる)でボタンやラベルを使いまわす
>
> という仕様なのでその方法だとちょっと厳しいかなぁと。。。

.NET の Bitmap クラスはアルファ値をサポートしているので

・「ぬき」たいところを透明色にしたボタン用の画像を作成
・必要なら「ふち」部分のアルファ値を調整



・「なんちゃってボタン」を配置したいパネルまたはフォームの Paint イベントのハンドラ内で Graphics.DrawImage() でボタン画像を描画

でおけ。

ここでも API を呼び出す必要なんざあらしまへん。

ただし、これは「絵面」だけの解決でしかないけど。

クリックを検出するところは自前になるし、ボタンの重なりも表現しなくちゃいけないような場合はもっと手の込んだことをしなくちゃダメ。
引用返信 編集キー/
■30188 / inTopicNo.33)  Re[19]: PictureBoxの透過処理 その2
□投稿者/ 渋木宏明(ひどり) (993回)-(2008/12/18(Thu) 19:13:18)
渋木宏明(ひどり) さんの Web サイト
絵面だけの話なら、こんだけ。

http://cid-f11bb9fd8e1bc5f9.skydrive.live.com/self.aspx/Junktest/SampleDrawImage-20081218.zip
引用返信 編集キー/

<前の20件
トピック内ページ移動 / << 0 | 1 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -