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

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

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

全過去ログを検索

<< 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 >>
■12208  コントロールの描画をBitmapよりも下にしたい
□投稿者/ デルタ -(2008/01/04(Fri) 23:23:42)

    分類:[C#] 

    2008/01/05(Sat) 09:19:31 編集(投稿者)
    2008/01/05(Sat) 09:19:28 編集(投稿者)

    ボタンなどのコントロールを表示させ、Bitmapの画像をOnPaintで描画するのですが、ボタンが上に描画され、画像が下になってしまいます。
    これをボタンを下に描画し、その上にBitmap画像を描画するようにすることはできるのでしょうか?
    使用しているものは、Visual C#になります。
親記事 /過去ログ27より / 関連記事表示
削除チェック/

■12211  Re[1]: コントロールの描画をBitmapよりも下にしたい
□投稿者/ やじゅ -(2008/01/05(Sat) 01:55:58)
>
    No12208 (デルタ さん) に返信
    > ボタンなどのコントロールを表示させ、Bitmapの画像をOnPaintで描画するのですが、ボタンが上に描画され、画像が下になってしまいます。
    > これをボタンを下に描画し、その上にBitmap画像を描画するようにすることはできるのでしょうか?
    >

    Bitmapの画像を、Pictureコントロールなのかフォームに直に表示しているのかによりますが、
    Pictureコントロールなら、最前面へ移動すれば出来るかも・・・試してないけど

    Control.BringToFront メソッド
    コントロールを z オーダーの最前面へ移動します。
    http://msdn2.microsoft.com/ja-jp/library/system.windows.forms.control.bringtofront.aspx

    Control.SendToBack メソッド
    コントロールを z オーダーの背面に移動します。
    http://msdn2.microsoft.com/ja-jp/library/system.windows.forms.control.sendtoback.aspx
記事No.12208 のレス /過去ログ27より / 関連記事表示
削除チェック/

■12216  Re[2]: コントロールの描画をBitmapよりも下にしたい
□投稿者/ デルタ -(2008/01/05(Sat) 09:18:02)
    No12211 (やじゅ さん) に返信

    > Bitmapの画像を、Pictureコントロールなのかフォームに直に表示しているのかによりますが、
    > Pictureコントロールなら、最前面へ移動すれば出来るかも・・・試してないけど

    > Control.SendToBack メソッド
    > コントロールを z オーダーの背面に移動します。
    > http://msdn2.microsoft.com/ja-jp/library/system.windows.forms.control.sendtoback.aspx

    お答えいただいてありがとうございます。
    Bitmapの画像はフォームに直接表示しています。
    SendToBack();を試してみましたが、無理でした。
    やはりフォームに直接描画したものはコントロールの上にならないでしょうか。
記事No.12208 のレス /過去ログ27より / 関連記事表示
削除チェック/

■12220  Re[3]: コントロールの描画をBitmapよりも下にしたい
□投稿者/ Tom Yama -(2008/01/05(Sat) 12:05:48)
    No12216 (デルタ さん) に返信
    > やはりフォームに直接描画したものはコントロールの上にならないでしょうか。
    はい。
記事No.12208 のレス /過去ログ27より / 関連記事表示
削除チェック/

■12264  Re[3]: コントロールの描画をBitmapよりも下にしたい
□投稿者/ やじゅ -(2008/01/07(Mon) 00:39:17)
>
    No12216 (デルタ さん) に返信
    >
    > やはりフォームに直接描画したものはコントロールの上にならないでしょうか。

    そのようにしたい理由は何故でしょうか?
    コントロールより上にするってことは、コントロールが見えなくなるので
    コントロールを非表示にすればいいと思いますが
記事No.12208 のレス /過去ログ27より / 関連記事表示
削除チェック/

■12307  Re[4]: コントロールの描画をBitmapよりも下にしたい
□投稿者/ デルタ -(2008/01/07(Mon) 21:19:56)
    No12264 (やじゅ さん) に返信
    > ■No12216 (デルタ さん) に返信
    > >
    >>やはりフォームに直接描画したものはコントロールの上にならないでしょうか。
    >
    > そのようにしたい理由は何故でしょうか?
    > コントロールより上にするってことは、コントロールが見えなくなるので
    > コントロールを非表示にすればいいと思いますが
    >

    はい、Bitmapが透過しているので、上に載せてコントロールの一部が見えるようにしたいのですが、無理そうですね。
記事No.12208 のレス /過去ログ27より / 関連記事表示
削除チェック/

■12311  Re[5]: コントロールの描画をBitmapよりも下にしたい
□投稿者/ Hirotow -(2008/01/07(Mon) 21:51:48)
    No12307 (デルタ さん) に返信
    > ■No12264 (やじゅ さん) に返信
    >>■No12216 (デルタ さん) に返信
    >>>
    > >>やはりフォームに直接描画したものはコントロールの上にならないでしょうか。
    >>
    >>そのようにしたい理由は何故でしょうか?
    >>コントロールより上にするってことは、コントロールが見えなくなるので
    >>コントロールを非表示にすればいいと思いますが
    > >
    > 
    > はい、Bitmapが透過しているので、上に載せてコントロールの一部が見えるようにしたいのですが、無理そうですね。
    
    FormではなくボタンのOnPaintで書いてみたらどうでしょうか?
    button1.ColorKey = Color.Black; //カラーキーをデザイナなりコンストラクタなりで設定しておく
    private void button1_Paint(object sender, PaintEventArgs e)
    {
        e.Graphics.DrawImage(bmpToPaint);
    }
記事No.12208 のレス /過去ログ27より / 関連記事表示
削除チェック/

■12313  Re[5]: コントロールの描画をBitmapよりも下にしたい
□投稿者/ Tom Yama -(2008/01/07(Mon) 22:31:03)
    No12307 (デルタ さん) に返信
    > はい、Bitmapが透過しているので、上に載せてコントロールの一部が見えるようにしたいのですが、無理そうですね。
    Formに描く限りは、無理でしょう。

    FormにPictureBoxか何かをのせて、そこにBitmapを表示させればいけるかもしれませんが、、、

    ・PictureBoxが必ず、Buttonの上にくるようにしないといけない。
    ・PictureBox自体を透過にする必要があるはず。
    この2点のやり方を、わたしは知りません。

    # あんまし、役に立つ話じゃなくて、申し訳ないです。
記事No.12208 のレス /過去ログ27より / 関連記事表示
削除チェック/

■12318  Re[6]: コントロールの描画をBitmapよりも下にしたい
□投稿者/ やじゅ -(2008/01/07(Mon) 23:40:14)
>
記事No.12208 のレス /過去ログ27より / 関連記事表示
削除チェック/

■12340  Re[7]: コントロールの描画をBitmapよりも下にしたい
□投稿者/ Tom Yama -(2008/01/08(Tue) 11:20:32)
    No12318 (やじゅ さん) に返信
    > 出来るかわからないが、PictureBoxコントロールとかパネルとか形状を変更してその上に画像を
    > 表示したらどうでしょうか
    そうですね。
    # っていうか、わたしのやり方だと、ボタンが押せませんね。

    それか、ボタンコントロールを配置するのを止めて、ボタンのように見えるものをBitmapの下に描くか、ですね。

    # ちなみに、このやり方だと、凝ろうと思えば、いくらでも時間が吸い取られるので、
    # 適当なところで、妥協してね。
記事No.12208 のレス /過去ログ27より / 関連記事表示
削除チェック/

■12383  Re[8]: コントロールの描画をBitmapよりも下にしたい
□投稿者/ クラス -(2008/01/08(Tue) 22:58:19)
    No12340 (Tom Yama さん) に返信
    > ■No12318 (やじゅ さん) に返信
    >>出来るかわからないが、PictureBoxコントロールとかパネルとか形状を変更してその上に画像を
    >>表示したらどうでしょうか
    > そうですね。
    > # っていうか、わたしのやり方だと、ボタンが押せませんね。
    >
    > それか、ボタンコントロールを配置するのを止めて、ボタンのように見えるものをBitmapの下に描くか、ですね。
    >
    > # ちなみに、このやり方だと、凝ろうと思えば、いくらでも時間が吸い取られるので、
    > # 適当なところで、妥協してね。

    みなさん! ありがとうございます!
    なんとか、やってみたいと思います!
記事No.12208 のレス / END /過去ログ27より / 関連記事表示
削除チェック/

■12278  添え字がInt64(long)の可変長リストが欲しい
□投稿者/ Hirotow -(2008/01/07(Mon) 14:22:17)

    分類:[.NET 全般] 

    現在製作中のバイナリ編集コントロールなのですが、
    バッファにList<byte>を使っているため、添え字として符号つき32ビットまでしか渡すことができません。
    しかしながら、System.IO名前空間のメソッドして64ビットまでのファイルをサポートしており、
    また今回のツールで編集対象としているMP4のボックスごとの最大サイズは符号なし32ビットなので、
    仮にそういったデータが渡された場合正常に表示することができません。
    そういうことでバッファに符号つき64ビットの添え字をサポートしたものを使用したいのですが、適当なクラスが.NETに見つかりません。
    またもっとも適当そうなMemoryStreamを使った場合性能面で不安があります。
    こういった場合どうすればいいかご教示いただけると幸いです。

    追記:
    スクロールバーの範囲はMaximumとLeageChangeのセットで指定するものなんですね。
親記事 /過去ログ27より / 関連記事表示
削除チェック/

■12280  Re[1]: 添え字がInt64(long)の可変長リストが欲しい
□投稿者/ なちゃ -(2008/01/07(Mon) 14:38:17)
    その前にメモリ空間が足りなくなりませんか?多くの環境では。
    リニアに確保するのはさらに制約が厳しいでしょう。

    作業部分をキャッシュのようにメモリ上に展開するような工夫が必須な気がします。
記事No.12278 のレス /過去ログ27より / 関連記事表示
削除チェック/

■12283  Re[2]: 添え字がInt64(long)の可変長リストが欲しい
□投稿者/ Hirotow -(2008/01/07(Mon) 15:52:23)
    No12280 (なちゃ さん) に返信
    > その前にメモリ空間が足りなくなりませんか?多くの環境では。
    > リニアに確保するのはさらに制約が厳しいでしょう。
    >
    > 作業部分をキャッシュのようにメモリ上に展開するような工夫が必須な気がします。
    >
    確かに容量によってはOutOfMemoryExceptionが発生してました。

    内部バッファを読み込み+シーク可能なストリームにし、外部からのアクセスもストリームにしました。
    また大容量(100MB以上)のファイルの場合はFileStreamをそのまま、小容量の場合はMemoryStreamにコピーしてからセットすることでGB単位のファイルでも問題なく読み込めるようになりました。

    現在の最新版:
    http://mui-style.net/data/BinaryEditor_Mikansei_D.zip
記事No.12278 のレス /過去ログ27より / 関連記事表示
削除チェック/

■12284  Re[3]: 添え字がInt64(long)の可変長リストが欲しい
□投稿者/ Hirotow -(2008/01/07(Mon) 15:55:10)
    あとバッファ関連の問題はどうやってInsert編集を実装するか…
    書くたびにそれ以降のバイトをずらしてたら埒が明かないし。
    ある程度まとめてとってから読み飛ばし位置を別に保持するとかすべきかな…
記事No.12278 のレス /過去ログ27より / 関連記事表示
削除チェック/

■12305  Re[4]: 添え字がInt64(long)の可変長リストが欲しい
□投稿者/ れい -(2008/01/07(Mon) 20:58:25)
    No12284 (Hirotow さん) に返信
    > あとバッファ関連の問題はどうやってInsert編集を実装するか…
    > 書くたびにそれ以降のバイトをずらしてたら埒が明かないし。
    > ある程度まとめてとってから読み飛ばし位置を別に保持するとかすべきかな…

    移動量を保存しておくのがいいでしょうね。

    大容量の場合もそうですが、
    ページの概念を導入するのが一般的かと思います。
    1K単位とか、1M単位でページとし、
    編集・未編集のフラグと、本来の位置から何バイトずれているのか記録します。

    ずれの量を起動しておけば挿入・削除に対応できます。
記事No.12278 のレス /過去ログ27より / 関連記事表示
削除チェック/

■12309  Re[5]: 添え字がInt64(long)の可変長リストが欲しい
□投稿者/ Hirotow -(2008/01/07(Mon) 21:31:53)
    いまいち理解できないのでもう少し具体的に教示してもらえると助かります。
    No12305 (れい さん) に返信
    > ■No12284 (Hirotow さん) に返信
    >>あとバッファ関連の問題はどうやってInsert編集を実装するか…
    >>書くたびにそれ以降のバイトをずらしてたら埒が明かないし。
    >>ある程度まとめてとってから読み飛ばし位置を別に保持するとかすべきかな…
    >
    > 移動量を保存しておくのがいいでしょうね。
    >
    > 大容量の場合もそうですが、
    > ページの概念を導入するのが一般的かと思います。
    > 1K単位とか、1M単位でページとし、
    > 編集・未編集のフラグと、本来の位置から何バイトずれているのか記録します。
    >
    > ずれの量を起動しておけば挿入・削除に対応できます。
    >
記事No.12278 のレス /過去ログ27より / 関連記事表示
削除チェック/

■12317  Re[6]: 添え字がInt64(long)の可変長リストが欲しい
□投稿者/ れい -(2008/01/07(Mon) 23:37:27)
    No12309 (Hirotow さん) に返信
    > いまいち理解できないのでもう少し具体的に教示してもらえると助かります。

    むむ。
    私の日本語能力だと「もう少し」具体的に書くのは難しいです。
    説明が長大になるか、コードになってしまいます。

    あんまり詳細に説明するのもめんどくさいですし
    Hirotowさんのオリジナリティを損なう可能性がありますので、
    適当に言いますが、

    ・元ファイル上での開始位置と長さ
    ・編集済みフラグ
    ・実際のデータが保存される可変長のByte配列

    の一連の情報をまとめてページとし、
    ページ単位でデータを管理するようにすると
    挿入・削除や大きいファイルの編集も比較的簡単にできます。

    エディタは、表示されているページと編集済みページリストを保持します。
    カーソルが移動してあるページが表示されなくなった場合、
    未編集であれば保持する必要がなくなります。
    編集済みであれば編集済みページリストに追加しておく必要があります。

    カーソルが移動して、新たにページを表示する場合、
    編集済みページリストにあればそれを使えばいいですし、
    なければファイルから適当な量だけ読み込んでページを作成し、それを使います。

    挿入・削除操作が行われた場合は該当ページにだけ行えばよいので、
    全データをシフトする必要もなくなります。
    たくさん行われた時はページの分割・統合が必要になります。

    編集されたデータをファイルに保存する時は
    編集済みページリストと元ファイルを突き合わせれば
    編集後のファイルを作成することができます。

    このように、元ファイルの一部分だけをいじる方法は
    大きいファイルではよくやる手です。
記事No.12278 のレス /過去ログ27より / 関連記事表示
削除チェック/

■12327  Re[7]: 添え字がInt64(long)の可変長リストが欲しい
□投稿者/ Hirotow -(2008/01/08(Tue) 01:13:30)
    かなり作り直さないといけなさそうですが、がんばってやってみます。

    No12317 (れい さん) に返信
    > ■No12309 (Hirotow さん) に返信
    >>いまいち理解できないのでもう少し具体的に教示してもらえると助かります。
    >
    > むむ。
    > 私の日本語能力だと「もう少し」具体的に書くのは難しいです。
    > 説明が長大になるか、コードになってしまいます。
    >
    > あんまり詳細に説明するのもめんどくさいですし
    > Hirotowさんのオリジナリティを損なう可能性がありますので、
    > 適当に言いますが、
    >
    > ・元ファイル上での開始位置と長さ
    > ・編集済みフラグ
    > ・実際のデータが保存される可変長のByte配列
    >
    > の一連の情報をまとめてページとし、
    > ページ単位でデータを管理するようにすると
    > 挿入・削除や大きいファイルの編集も比較的簡単にできます。
    >
    > エディタは、表示されているページと編集済みページリストを保持します。
    > カーソルが移動してあるページが表示されなくなった場合、
    > 未編集であれば保持する必要がなくなります。
    > 編集済みであれば編集済みページリストに追加しておく必要があります。
    >
    > カーソルが移動して、新たにページを表示する場合、
    > 編集済みページリストにあればそれを使えばいいですし、
    > なければファイルから適当な量だけ読み込んでページを作成し、それを使います。
    >
    > 挿入・削除操作が行われた場合は該当ページにだけ行えばよいので、
    > 全データをシフトする必要もなくなります。
    > たくさん行われた時はページの分割・統合が必要になります。
    >
    > 編集されたデータをファイルに保存する時は
    > 編集済みページリストと元ファイルを突き合わせれば
    > 編集後のファイルを作成することができます。
    >
    > このように、元ファイルの一部分だけをいじる方法は
    > 大きいファイルではよくやる手です。
記事No.12278 のレス /過去ログ27より / 関連記事表示
削除チェック/

■12328  Re[8]: 添え字がInt64(long)の可変長リストが欲しい
□投稿者/ れい -(2008/01/08(Tue) 01:50:52)
    No12327 (Hirotow さん) に返信
    > かなり作り直さないといけなさそうですが、がんばってやってみます。

    量の見積もりは最初からきちんしておかないといけないということですね。
記事No.12278 のレス /過去ログ27より / 関連記事表示
削除チェック/

次の20件>

<< 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 >>

ヒット件数が多いので過去ログ27〜27 までの検索結果 / 過去ログ28からさらに検索→

パスワード/

- Child Tree -