トップページ⇒tech
121コメント29KB

ビットマップの再描画

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
ビットマップの再描画の方法教えてください
0002やれやれNGNG
2getする気にもならんクソスレだな。
0003デフォルトの名無しさんNGNG
VC++6.0です
0004デフォルトの名無しさんNGNG
2gettt
0005デフォルトの名無しさんNGNG
>1
再描画?ビットマップをもう一回描画すればいいだけだ。簡単だろ?
0006Redraw of BitmapNGNG
Please teach me how to redraw a bit-map.
0007デフォルトの名無しさんNGNG
描画を出したあとにウィンドウのサイズを変更すると消えてしまいます
どうすれば消えないの??
ビットマップ保持したいのです
0008デフォルトの名無しさんNGNG
>>1

Win32API 質問箱 Build7
http://pc3.2ch.net/test/read.cgi/tech/1036654893

***すれ立てるまでもない質問はここで 第27刷***
http://pc3.2ch.net/test/read.cgi/tech/1039062864/l50

おまえ沢村並み
つーか沢村じゃなかろうな(-_-メ
0009デフォルトの名無しさんNGNG
じゃあ>>1は海老原ということで
0010デフォルトの名無しさんNGNG
目に焼き付けておく。
0011デフォルトの名無しさんNGNG
今時そんなのどこにでも書いてある。
マジレス
0012デフォルトの名無しさんNGNG
>>7
VBならAutoRedrawプロパティをTRUEに
0013デフォルトの名無しさんNGNG
>>11
レスすんな。
0014さげたるNGNG
>>1
ビットマップのファイルをクリック。
お使いのビューアが立ち上がったら、更に同じビットマップのファイルをクリック。
0015名無し@沢村NGNG
>>8
>おまえ沢村並み
つーか俺は再描画くらいはできるよ。ド素人の俺でさえね(藁)
ただリソースを減らさないのが難しいよ…。まだわからんよ…?
0016デフォルトの名無しさんNGNG
本を1冊買えってことで


************** 終 了 ***************
0017さげたるNGNG
>>15
なかすなよ。おかいよ気味。
00188NGNG
>>15

おまえの言う「再描画」とは
Rectangle(hdc,0,0,10,10);
Rectangle(hdc,0,0,10,10);
のことだろう

1の質問はもっと高度なことだ
1がスレ一覧を見ていないということと
沢村がMSDNを読んでないという点を
同レベルだと言ったのだ
0019デフォルトの名無しさんNGNG
WM_PAINTメッセージのイベントハンドラでビットマップを描け
0020デフォルトの名無しさんNGNG
>>19
ついに答え書いちゃったのかよ。だから単発厨が調子に乗るんだ馬鹿野郎。
0021デフォルトの名無しさんNGNG
>>1
お前みたいなののためにHSPがある
0022デフォルトの名無しさんNGNG
>>20
うっさいハゲ
0023名無し@沢村NGNG
>>19
その通り。
WM_PAINTメッセージのイベントハンドラでビットマップを描くと、InvalidateRectを送るだけで再描画できるが、
WM_PAINT外にビットマップを描くと、InvalidateRectを送っても再描画されず、独自の処理が必要になる。
0024デフォルトの名無しさんNGNG
>>23
はあ?言ってる事が本末転倒だぞ。
0025デフォルトの名無しさんNGNG
>>23
沢村ってこんなおもろいヤツだったのか。
30秒ばかし笑わせてもらった。








2度とくんな
0026デフォルトの名無しさんNGNG
>>25
いや、むしろここから出てくんな。
0027デフォルトの名無しさんNGNG
>>26
隔離スレ作ってそこに・・・。ここを隔離するのでももちろん可
0028デフォルトの名無しさんNGNG
f u c k y o u
0029デフォルトの名無しさんNGNG
>>24
InvalidateRectでWM_PAINTが呼ばれるから
WM_PAINT以外にビットマップ描画コードを書くなって事だと思われ。

InvalidateRectはタイマーで一定時間ごと呼んでもいいけど
WM_SIZEなどで呼んだほうがいいかな。
0030デフォルトの名無しさんNGNG
>>29
分かってまんがな。>>23を良く読むと何か変w
合ってはいるんだけど逆じゃん。InvalidateRectによってWM_PAINTメッセージが発生するわけであって。
0031名無し@沢村NGNG
>>InvalidateRectによってWM_PAINTメッセージが発生するわけであって。

それは違うぞ。WM_PAINTイベントハンドラに描画のコードを書くと、そのプログラムを起動した段階ですでにウインドウに描画されているぞ。
つまりまだInvalidateRectは使ってないのにWM_PAINTメッセージが発生したことになるな。
だからInvalidateRectによってWM_PAINTメッセージが発生するというのは違うぞ。
0032デフォルトの名無しさんNGNG
小学生の時
同じクラスに沢村君ていうダウン症の子がいました。
君は第三小学校に通ってた沢村君?
0033デフォルトの名無しさんNGNG
>>31
UpdateWindowのことでは?
0034デフォルトの名無しさんNGNG
名無し@沢村は脳機能がダウンしているだけで、ダウン症とは関係ありません。
0035デフォルトの名無しさんNGNG
InvalidateRect によって WM_PAINT が発生する、
が沢村脳内変換されて
WM_PAINT は InvalidateRect によって発生する、
に変化したもようようです。
0036デフォルトの名無しさんNGNG
>>35
同じ事を言っているような・・・
0037デフォルトの名無しさんNGNG
>>36
InvalidateRectを呼ぶ事はWM_PAINTが発生するための十分条件ですが必要条件ではありません。
0038デフォルトの名無しさんNGNG
InvalidateRectによってもWM_PAINTメッセージが発生する。
以上。
0039デフォルトの名無しさんNGNG
>>1 この板になんか怨みでもあるの?
たしかにアホなこと書くとヴァカと言われる板ではある。
0040デフォルトの名無しさんNGNG
>>39
正直、すまんかった。
ちゃんとアホというようにする。
0041デフォルトの名無しさんNGNG
ヴァカが糞スレをあげる。
0042デフォルトの名無しさんNGNG
沢村板はここですか
0043デフォルトの名無しさんNGNG
>>42
そうです。沢村を崇め立てるスレです。
0044デフォルトの名無しさんNGNG
まあ記録されてるとは言っても、ののたんのおまんこ裂きたいよね
0045デフォルトの名無しさんNGNG
大阪って何だよ
0046デフォルトの名無しさんNGNG
スレ違いかもしれないけど、

             ┌────┐ __
たぶん     → C==|       |llllll|   |←キャップ
ここから飲む    └────┘  ̄ ̄  (中に炭酸の素?が入ってて
               ↑          閉めると炭酸が出てくる)
               本体         
0047デフォルトの名無しさんNGNG
情けない話だ。
結局社会の言い成りか。マスコミに煽られてビビってるようじゃ駄目だな。
0048デフォルトの名無しさんNGNG
ID:ZBsKvw39 が嫌がってるから>>249は効果有りそうだな。
0049デフォルトの名無しさんNGNG
======2==C==H======================================================

         2ちゃんねるのお勧めな話題と
     ネットでの面白い出来事を配送したいと思ってます。。。

===============================読者数: 138720人 発行日:2003/1/9

年末年始ボケがそろそろ収まり始めた今日このごろのひろゆきです。

そんなわけで、年末に予告したIP記録ですが実験を開始しています。

「2ちゃんねる20030107」
こんな感じで各掲示板の最下部に日付が入ってるんですが、
20030107以降になってるところはログ記録実験中ですー。

んじゃ!

────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50
────────────────────────────
0050デフォルトの名無しさんNGNG
レーズン
0051デフォルトの名無しさんNGNG
多段串で絶対わからん。
0052デフォルトの名無しさんNGNG
明け方は逢魔時
0053デフォルトの名無しさんNGNG
西村氏は
廃人で雪に入って凍っているかと思ったらまだ生きていたんですね。
0054デフォルトの名無しさんNGNG
裁判関係は移動しる!
0055デフォルトの名無しさんNGNG
ざまあみろなわけだが。。。バク
0056デフォルトの名無しさんNGNG
ここは建前だけのインターネットになるんですね
0057デフォルトの名無しさんNGNG

ハァ?あっちはヲチスレでしょ痛いよ、君。
0058デフォルトの名無しさんNGNG
           ∠ ̄\
            |/゚U゚|  ヤレヤレ
       ___|__|____
      / \       ___\
     .<\※ \____|\____ヽ
        ヽ\ ※ ※ ※| |====B=|
        \`ー──-.|\|___l__◎..|ヽ
          ̄ ̄ ̄ ̄| .| ̄ ̄ ̄ ̄|
               \|        |〜
0059デフォルトの名無しさんNGNG
2chには自由を身勝手と履き違えている人が多すぎる
それにどうしても匿名で告発したかったらインターネットカフェや
漫画喫茶などで書き込むことはできるはず
電気のインターネットコーナーでもいいしね
荒らしや誹謗中傷してる奴は暇を持て余してる身勝手な奴がほとんど
こいつらのためにわざわざ匿名にする必要はまったくもってなし
0060デフォルトの名無しさんNGNG
子供だからわかりませんってほんとに言ったの?>にかいどー氏に
0061デフォルトの名無しさんNGNG
侮辱罪で訴えるます
0062デフォルトの名無しさんNGNG
======2==C==H======================================================

         2ちゃんねるのお勧めな話題と
     ネットでの面白い出来事を配送したいと思ってます。。。

===============================読者数: 139038人 発行日:2003/1/10

なにやら、連日メルマガだしてるひろゆきです。

そんなわけで、ログ記録実験ですが、いちいちサーバ指定するのが面倒なので、
全部のサーバに入れてみました。

重くなって落ちたりしてもご愛嬌ってことで。。。

んじゃ!

────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50
────────────────────────────
0063デフォルトの名無しさんNGNG
全国の吉野家借り切りですな・・・
0064デフォルトの名無しさんNGNG
馬鹿も底無しだったら台風の目で逆に安全なんだろ。
坂本竜馬と一緒だ。
0065デフォルトの名無しさんNGNG
ひろゆきに叩かれろ
0066デフォルトの名無しさんNGNG
最後の記念カキコ
0067デフォルトの名無しさんNGNG
(・∀・)チューボーですよ!
0068デフォルトの名無しさんNGNG
ねぇ、6億超えちゃったんだし
どこで見えるのか教えてちょーだいよ。
0069デフォルトの名無しさんNGNG
批判要望のスレなんで止められてんのよ
0070デフォルトの名無しさんNGNG
JBBSも方針かえるかな?
0071デフォルトの名無しさんNGNG
煤i´Д`;
あたし、タイーホなんですか?

(((( ;゚Д゚)))ガクガクブルブル
0072デフォルトの名無しさんNGNG

●2ちゃんねるでの1つの書き込みをきっかけに、さいたま県下の全小学校で警戒態勢がしかれたことについて、どう思いますか?

ひろゆき:お、そうなんですか?
テレビみてないので知りませんでした。



西村のモラルは完全に壊れている。
0073デフォルトの名無しさんNGNG
さいたまに住んでいます
0074デフォルトの名無しさんNGNG
「代理」って分かる?
0075デフォルトの名無しさんNGNG
http://ton.2ch.net/test/read.cgi/gline/1042226573/60n-
0076山崎渉NGNG
(^^)
0077デフォルトの名無しさんNGNG
払?あっちはヲチスレでしょ痛いよ、君。
0078山崎渉NGNG
(^^)
0079山崎渉NGNG
(^^)
0080デフォルトの名無しさんNGNG
まあ記録されてるとは言っても、ののたんのおまんこ裂きたいよね
0081山崎渉NGNG
   ∧_∧
  (  ^^ )< ぬるぽ(^^)
0082デフォルトの名無しさんNGNG
(゚∀゚)あああ
(。A。)あああ
0083デフォルトの名無しさんNGNG
>>81
あああ
0084 ◆tmK1tKbmdE NGNG
しょうきょしますた
0085 ◆vBOFA0jTOg NGNG
宇宙人襲来
0086デフォルトの名無しさんNGNG
0087デフォルトの名無しさんNGNG
スカラ〜電磁波
http://homepage3.nifty.com/coco-nut/
0088名無し@沢村NGNG
>>1
おまえよ、ビットマップの再描画はWM_PAINTの中に描画をする関数を書くんだよ。
まあそうしておけば、ウィンドウのサイズを変更したりしても絵は消えない。WM_PAINTの中に書いておけばな…。
ただしGetDC()ではなく、BeginPaint()でデバイスコンテキストを取得しないといかんぞ!
また絵に変更を加えた場合はInvalidateRectを使うと、自動的に画面は変更を加えられた絵に変化する。
これが再描画の基本だ。
だがこれだけじゃ連続して画面にアニメなどを描きたい場合は、画面がちらつくんだよ!
おまえな、画面がちらつかないようにアニメを描くには、ビットマップの描画を2段階に分けなくちゃいかん!
まず最初にWinMain関数の中にwindowをCreateした後、ビットマップをロードして描画するんだよ。
ここではGetDC()を使え。
そしてGetDC()で得たデバイスコンテキストと互換性のあるメモリデバイスコンテキストをCreateCompatibleDCで取得しろ。
このメモリデバイスコンテキストをhMemDCとする。
つぎにwindowのサイズと同じ大きさでCreateCompatibleBitmap()を使え。
そしてSelectObjectした後、window全体にPatBltしろ。最後にGetDC()で得たデバイスコンテキストを開放しろ。
これで描画その1は終わりだ。
おまえ、描画その2はな、WM_PAINTに描け。
このときはGetDC()ではなくBeginPaintを使え。
そしてまず画面をFillRectしろ。というのはその1でPatBltを使っているため画面がきたなくなっているからだ。
だからFillRectできれいに塗り直せ。
そしてその1で得たメモリデバイスコンテキストのhMemDCとさらに互換性のあるメモリメモリデバイスコンテキストhMemMemDCをCreateCompatibleDCで作れ。
そしてSelectObjectで最初にロードしといたビットマップを選び、BitBlt(hMemDC,?,?,?,?,hMemMemDC,?,?,SRCCOPY);とすれば描画のすべての完成だ。
そして最後にhMemMemDCをDeleteDCしてEndPaintすればいいよ。
またhMemDCのDeleteDCのほうはプログラム全体が終了する一番最後にすればいいよ。
おまいよ、これが画面がぜんぜんちらつかない完璧な描画のメカニズムつーかすべてよ。
参考にしろ!!!
0089名無し@沢村NGNG
>>1
おまいよ、描画その2だがな、
BitBlt(hMemDC,?,?,?,?,hMemMemDC,?,?,SRCCOPY);
とした後、大事なことが抜けていたよ。
それはな、BitBlt(hDC,?,?,?,?,hMemDC,?,?,SRCCOPY);よ。
hDCはBeginPaint取得したデバイスコンテキストよ。
これがないと画面に絵が出てこないから、くれぐれも忘れるな。いいか!!
0090名無し@沢村NGNG
>>1
まあコード化すればこんな感じよ。
void Draw1()//描画その1(WinMainの中に描く)
{
HDC hDC;
hDC=GetDC(hWnd);
hMemDC=CreateCompatibleDC(hDC);
hBIT=CreateCompatibleBitmap(hDC,?,?);
SelectObject(hMemDC,hBIT);
PatBlt(hMemDC,?,?,?,?,PATCOPY);
ReleaseDC(hWnd,hDC);
}
void Draw2(HWND hwnd)//描画その2(WM_PAINTの中に描く)
{
HDC hDC,hMemMemDC;
hDC=BeginPaint(hwnd,&paintstruct);
FillRect(hMemDC,&zen_rect,hBrush);
hMemMemDC=CreateCompatibleDC(hMemDC);
SelectObject(hMemMemDC,hBMP);
BitBlt(hMemMemDC,?,?,?,?,hMemDC2,?,?,SRCCOPY);
SelectObject(hMemDC,hBIT);
BitBlt(hDC,?,?,?,?,hMemDC,?,?,SRCCOPY);
DeleteDC(hMemMemDC);
EndPaint(hwnd,&paintstruct);
}
0091デフォルトの名無しさんNGNG
ダブルばっふぁ
0092名無し@沢村NGNG
>>91
ハゲコラクソおまえ!!
90がダブルバッファのやり方なんだよ!ハゲ!!
0093デフォルトの名無しさんNGNG
ダブルバッファリングなんてゲーム以外でも使うんだ。
面倒になったなぁ。
0094デフォルトの名無しさんNGNG
沢村は優しいなあ
0095デフォルトの名無しさんNGNG
おれもビットマップきえたよ〜
誰かたしけてくださ〜い
0096山崎渉NGNG
     ∧_∧
ピュ.ー (  ^^ ) <これからも僕を応援して下さいね(^^)。
  =〔~∪ ̄ ̄〕
  = ◎――◎                      山崎渉
0097デフォルトの名無しさんNGNG
明け方は逢魔時
0098デフォルトの名無しさんNGNG
>>3
プッ
0099山崎 渉NGNG

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄
0100デフォルトの名無しさんNGNG
全国の吉野家借り切りですな・・・
0101山崎 渉NGNG
(^^)
0102山崎 渉NGNG
    (⌒V⌒)
   │ ^ ^ │<これからも僕を応援して下さいね(^^)。
  ⊂|    |つ
   (_)(_)                      山崎パン
0103デフォルトの名無しさんNGNG
(^^)
0104デフォルトの名無しさんNGNG

0105デフォルトの名無しさんNGNG
うわqこんなに伸びてやガッたのか
0106ほんたまNGNG
>>1よ。
ビットマップの再描画も知らんのか?
>>1よ。
まずビットマップはウィンドウプロシージャのWM_PAINTに書くのはしってるか?
よし、そこまでは知ってるな、よし。
次にInvalidateRectをつかうとWM_PAINTメッセージが送られて再描画されるのは、知ってるか?
よし、そこまでは知ってるな、よし。
>>1よ。
それが再描画のすべてだ。安心しろ。おみゃ〜は全部知ってるよ。
>>1よ。
他にわからんことがあったら、ほんたまに聞け♪
0107デフォルトの名無しさんNGNG
まだ続けるのか・・・

とりあえず、ぬるぽ
0108デフォルトの名無しさんNGNG
ビットマップハンドルを使わずにビットマップを描く方法はないものか
(要はリソース消費を押さえたい)
0109デフォルトの名無しさんNGNG
>>108

DIBを使えばよい。
0110デフォルトの名無しさんNGNG
>>107
ガッ
0111ほんたまNGNG
>>108
ビットマップファイルからピクセルデータを読み取り、1点1点描画していけばハンドルはいらないよ。
0112デフォルトの名無しさんNGNG
メタファイルを使ったら・・・あ、これもリソース使うのか?
0113デフォルトの名無しさんNGNG
GDI/GDI+のビットマップ転送能力
GDI/GDI+で転送速度を計測しました。GDI+は本当に遅いのか?
http://lamoo.s53.xrea.com/develop/gdiplus/gdiplus_blt.html
0114デフォルトの名無しさんNGNG
0115デフォルトの名無しさん05/02/02 18:35:34
this.Refresh();
0116デフォルトの名無しさん05/02/02 23:55:19
>>113
画像:640x480x24
解像度:1280x1024x16bpp
ビデオカード名しらん、「ディスプレイアダプタ」のとこ見るとSiS650ってかいてある

Aのほう
---------------------------
結果
---------------------------
ON : DIB:2.080206, DDB:0.013229, Bitmap:3.652826, Cache:1.853451
OFF : DIB:2.946714, DDB:0.013859, Bitmap:4.264843, Cache:2.942266
---------------------------
OK
---------------------------

Bのほう
---------------------------
結果
---------------------------
ON : DIB:2.025172, DDB:0.001959, Bitmap:3.694890, Cache:1.854956
OFF : DIB:2.899022, DDB:0.001930, Bitmap:4.268155, Cache:2.955365
---------------------------
OK
---------------------------

Bのテスト、DDBクソはやーい
0117デフォルトの名無しさん2005/06/22(水) 18:45:04
良スレ保守
0118デフォルトの名無しさん2005/06/22(水) 18:51:18
やっぱそうでもねえな・・
0119デフォルトの名無しさん2005/06/23(木) 00:47:18
うわ、まだこのスレあったんだ・・・
0120総括します2005/06/26(日) 18:12:08
>>12
>>88-90 >>91-92
>>106
あたりが為になったな、VBしか使えん超初心者の俺としては。

しかし、そのためだけに、119レスも使ってるのって‥
10回に1回は、誰かが良い事言うスレって事か。
0121デフォルトの名無しさん2005/06/26(日) 18:57:24
おれがマジレスしなきゃすぐ消えたスレなんだろうなあ・・・・
でも勉強になりました
■ このスレッドは過去ログ倉庫に格納されています