Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.07.24;
Скачать: CL | DM;

Вниз

Помогите разобраться с FastDIB   Найти похожие ветки 

 
SimpleUser   (2003-04-01 20:47) [0]

Пытаюсь поместить снимок экрана в FastDIB следующим образом:

{--}
VAR
FD:TFastDIB;
BEGIN
FD:=TFastDIB.create;
FD.SetSize(Screen.Width,Screen.Height,24);
BitBlt(FD.Handle,0,0,Screen.Width,Screen.Height,GetWindowDC(GetDesktopWindow),0,0,SRCCOPY);
END;

{-}

В чем тут проблема?


 
i-C3H7OH ©   (2003-04-01 21:14) [1]

1. забыл деструктор
2. GetWindowDC(GetDesktopWindow) - создало HDC, а кто удалять будет (ReleaseDC)
3. вместо GetDesktopWindow передавай 0


 
SimpleUser   (2003-04-01 21:39) [2]

Все добавил, а результат такой-же.
Может надо вместо FD.Handle другой его handle передавать, потому что если использовать просто canvas объекта Image:
BitBlt(Image1.canvas.Handle,0,0,Screen.Width,Screen.Height,GetWindowDC(GetDesktopWindow),0,0,SRCCOPY), то снимок делается, а с FastDIB непонятно.
Еще заметил один глюк у себя:
Если делать снимок экрана на Image и потом сохранить его на диске, то FastDIB не может его загрузить.


 
Stexen ©   (2003-04-02 12:08) [3]

Дак ты че делаешь то, там же у него не хэндел надо брать а HDC, то есть
в твоем случае
BitBlt( FD.hDC,0,0,Screen.Width,Screen.Height,GetWindowDC(0),0,0,SRCCOPY);


 
Stexen ©   (2003-04-02 12:09) [4]

и деструктор не забудь


 
i-C3H7OH ©   (2003-04-02 15:31) [5]

точно-точно
FD.hDC :HDC;
а
FD.Handle :HBITMAP;



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

Текущий архив: 2003.07.24;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.013 c
14-78064
Knight
2003-07-06 12:52
2003.07.24
Модем и молния...


14-78090
race1
2003-07-08 09:03
2003.07.24
WM & ...


1-77893
Ткаченко Сергей
2003-07-14 10:08
2003.07.24
Проблема со шрифтами


3-77749
USAtyj
2003-07-01 11:29
2003.07.24
Как в Paradox заставить все изменения сохранить физически...


1-77924
Starkom
2003-07-10 09:19
2003.07.24
Хочу сделать хоткеи в Dll ке