Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2004.08.29;
Скачать: [xml.tar.bz2];

Вниз

Proger   Найти похожие ветки 

 
Рисование на окне   (2004-07-10 11:32) [0]

Как вывести TBitmap на поверхность окна посредством BitBlt?


 
DeadMeat ©   (2004-07-10 13:12) [1]

Ты кажись тему с именем перепутал... :))

---
...Death Is Only The Begining...


 
DeadMeat ©   (2004-07-10 13:29) [2]

BitBlt (ТвояФорма.Canvas.Handle,КоординатаХ,КоординатаY,ТвойБитмап.Width,ТвойБитмап.Height,ТвойБитмап.Canvas.Handle,КоординатаВ ТвоемБитмапеХ,КоординатаВТвоемБитмапеY);

---
...Death Is Only The Begining...


 
Proger   (2004-07-11 16:39) [3]

2 DeadMeat ©.Я так и делал, но окно остаётся "чистым"


 
DeadMeat ©   (2004-07-11 18:08) [4]

А делал ты, как я понимаю в OnShow или OnCreate??
Так или иначе, покажи где и как ты это делал...

---
...Death Is Only The Begining...


 
Proger   (2004-07-14 18:25) [5]

А вот и сама прога:
 program Project2;
{$APPTYPE CONSOLE}
uses
 Windows,
 Messages,
 Engine_beta1,
 Graphics;

const
 sClassName = "sTaskBarHandlerWindow";  
var
 hWnd: THandle;                                      
 WndClass: TWndClass;                            
 Msg: TMsg;
 Spr: TSprite;
 Buf: TBitmap;

function WindowProc(hWnd: THandle; uMsg, wParam, lParam: Integer): Integer;
 stdcall; export;
begin
 Result := 0;
   case uMsg of
   WM_DESTROY:  
     begin
       halt(0);
     end;
   WM_PAINT:
     begin
       Spr.Draw(Buf);
       BitBlt(hWnd, 100, 100, 100, 100, Buf.canvas.handle,
         0, 0, SRCCOPY);
     end;
 end;
 Result := DefWindowProc(hWnd, uMsg, wParam, lParam);  
end;

begin
 Spr := TSprite.Create;
 Spr.SetParams("Data\Pads.bmp","", 0, 64, 64, clNone);
 Buf := TBitmap.Create;
 Buf.Width := 100;
 Buf.Height := 100;
 FillChar(WndClass, SizeOf(WndClass), 0);  
 with WndClass do begin
   hInstance      := SysInit.hInstance;
   lpszClassName  := sClassName;
   lpfnWndProc    := @WindowProc;
   hbrBackground      := GetStockObject(LTGRAY_BRUSH);
   end;
 RegisterClass(WndClass);
 hWnd := CreateWindow(sClassName, "", WS_OVERLAPPEDWINDOW, 0, 0, 1024, 768, 0, 0, hInstance, NIL);
 if hWnd = 0 then begin
   MessageBox(0, "Initialisation failed", NIL, ID_OK);
   Exit;
 end;
 ShowWindow(hWnd, SW_normal);
  while GetMessage(Msg, HWnd, 0, 0) do begin
   TranslateMessage(Msg);
   DispatchMessage(Msg);
 end;
  Halt(Msg.wParam);
end.


 
Красный молоток   (2004-07-14 18:50) [6]

А ты уверен шо Buf у тебя не пустой?


 
DeadMeat ©   (2004-07-14 22:12) [7]

BitBlt(hWnd, 100, 100, 100, 100, Buf.canvas.handle, 0, 0, SRCCOPY);
А вот эт чаво??
Надо GetDC и соответственно ReleaseDC

---
...Death Is Only The Begining...


 
Proger   (2004-07-15 08:26) [8]

2 Красный молоток.Buf не пустой, туда движок пихает спрайт.
2 DeadMeat ©.Может небольшим куском кода объясниш?


 
Григорьев Антон ©   (2004-07-15 08:34) [9]


> BitBlt(hWnd, 100, 100, 100, 100, Buf.canvas.handle,
>          0, 0, SRCCOPY);


Первый параметр должен быть дескриптором контекста устройства, а не окна. Контекст устройства при обработке WM_Paint нужно получать через BeginPaint.

И прочитайте какую-нибудь хорошую книжку - базовых знаний для таких задач у вас явно недостаточно.


 
AlexZ   (2004-07-15 23:33) [10]

>>{$APPTYPE CONSOLE}
>>Как вывести TBitmap на поверхность окна посредством BitBlt?

В консоли форма???


 
DeadMeat ©   (2004-07-16 01:05) [11]

.............
var MyPaint : TPaintStruct;
    MyWindowHWND : HWND;
    dc : HDC;
.............
dc := BeginPaint (MyWindowHWND, MyPaint);
............. (1)
EndPaint (MyWindowHWND, MyPaint);
.............


Пиши в (1) свой код, используя dc...

---
...Death Is Only The Begining...



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2004.08.29;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.039 c
3-1091531793
Valer
2004-08-03 15:16
2004.08.29
Перевод строки (возврат каретки)


4-1089908217
BaG
2004-07-15 20:16
2004.08.29
Как получить доступ к памяти любого процесса в системе?


14-1092300234
SSSSS
2004-08-12 12:43
2004.08.29
Люди! Где взять лицензионную 5-ю Дельфу?


1-1092339983
Cobalt
2004-08-12 23:46
2004.08.29
Установка компонент в D7


4-1089994372
Dir
2004-07-16 20:12
2004.08.29
OpenDir





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский