ホーム
Top.Mail.Ru Yandeks.Metrika
フォーラム: "WinAPI";
現在のアーカイブ:2002.01.08;
ダウンロード:[xml.tar.bz2];

ダウン

BitBltとCreateBitmapを使う 似ている枝を探す


Winnie!   (2001-11-01 19:50) [0]

2001 DOS->GDI->DrectDraw->OpenGL
На дворе 2001, а я все под ДОС графику программирую. Нужно переходить

под Win32. Решил разобраться сначала с GDI, прежде чем переходить к

DrectDraw,OpenGL.

1.Мне нужно завести в памяти буфер, куда я буду рисовать свое

изображение, и откуда я его буду копировать на экран(в окно).НО,

насколько я знаю:

Еcли создавать буфер функцией CreateDibBitmap, то он будет иметь

простую структуру(3 байта RGB на пиксел, кажется?), поэтому туда легко

рисовать своими алгоритмами. Но ведь BitBlt требует что бы битовые

карты в SrcDC и DestDc имели совместимый формат, а вдруг DIB не

совместим с DC моего окна?

Если же создать буфер функцией CreateComptibleBitmap, то непонятно,

как он устроен и как туда рисовать (своими алгоритмами)?

2.BitBlt копирует карту бит из одного DC в другой. Получается, что

после создания DC своего окна я должен создать другой DC (SrcDC). От

какого HWND я его спрашивается, буду создавать и почему его не будет

видно на экране(т.е. как так сделать)?

Как связаны связаны DC и BitMap?
3.Что нужно делать с полученным идентификатором БитМэпа после вызова

Create[...]Bitmap?

Можно какой-нибудь простейший примерчик с Create[...]Bitmap и BitBlt,

вроде банального вывода движущегося квадрата в окошко (сначала

попиксельно в буфер, затем на экран)
(на любом языке, желательно под TASM32)

эти вопросы уже читал:
Отображение на форме графики из памяти (Ewgeniy [Анкета] [Отправить письмо] 31.10.01 09:39)
что является источником для функции API BITBLT (MIFI [Отправить письмо] 28.10.01 15:17)



Иван Шихалев   (2001-11-01 20:09) [1]

MemDC := CreateComatibleDC (...);
Bitmap := CreateDIBitmap (...);
OldBitmap := SelectObject (MemDC, Bitmap);
...................
BitBlt (...)
...................
Bitamp := SelectObject (MemDC, OldBitmap);
DeleteDC (MemDC);



ページ: 1 全枝

フォーラム: "WinAPI";
現在のアーカイブ:2002.01.08;
ダウンロード:[xml.tar.bz2];

2階









メモリ:0.55 MB
時間:0.024 c
1-22249
ユージン・ゼリコフスキー
2001-12-17 13:53
2002.01.08
TTimerを使用せずにしばらく待つ方法


1-22241
ユラズ
2001-12-17 10:09
2002.01.08
FileListBox1.FileNameはファイルへのフルパスを返しますが、ファイル名のみを返すようにするにはどうすればよいですか?


14-22402
より暗い
2001-11-08 12:26
2002.01.08
ニックネームを持つ男を探しています


1-22222
ユージン・ゼリコフスキー
2001-12-14 13:58
2002.01.08
折り返し電話


14-22365
ケトマー
2001-10-16 06:22
2002.01.08
おもしろいです:私はシンフェロポリだけからですか?





アフリカーンス語 アルバニア語 Arabic アルメニア語 アゼルバイジャン語 バスク ベラルーシ Bulgarian カタロニア語 中国語(簡体字) 中国語(繁体字) クロアチア チェコ語 デンマーク語 Dutch 英語 エストニア語 タガログ語 Finnish フランス語
ガリシア語 ジョージアン ドイツ語 ギリシャ語 ハイチ語 ヘブライ語 ヒンディー語 ハンガリー語 アイスランド語 Indonesian アイリッシュ イタリア語 日本語 Korean ラトビア語 リトアニア マケドニア語 Malay マルタ語 Norwegian
ペルシア語 ポリッシュ ポルトガル語 ルーマニア ロシア語 セルビア Slovak スロベニア語 スペイン語 スワヒリ語 Swedish Thai トルコ語 ウクライナ語 ウルドゥー語 ベトナム語 ウェールズ語 イディッシュ語 ベンガル語 ボスニア語
セブアノ語 エスペラント グジャラート語 ハウサ語 モン族 イボ ジャワ語 カンナダ語 クメール語 ラオ語 ラテン マオリ語 マラーティー語 モンゴル語 ネパール語 パンジャブ語 ソマリ タミル語 テルグ語 ヨルバ語
ズールー語
Английский Французский Немецкий Итальянский ポルトガル語 Русский Испанский