Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Почему не работает этот код

Ответить
Настройки темы
Почему не работает этот код
mzd


Сообщения: n/a

Профиль | Цитировать


Пишу бесплатный Hypersnap
Для фото активного окна использую следующий код
Цитата:
procedure TFrmOptions.hotykey(var msg:TMessage);
var dd:hdc; g,m,d,h,mm,s,ss:word; ActivApp:TRect;
begin
if not DirectoryExists(dirpath) then CreateDir(dirpath);
dd:=GetDC(0);
DecodeDateTime(now,g,m,d,h,mm,s,ss);
if CheckBox1.Checked then begin
GetWindowRect(GetForegroundWindow,ActivApp);
DDF.Width:=ActivApp.Right-ActivApp.Left;
DDF.Height:=ActivApp.Bottom-ActivApp.Top;
StretchBlt(DDF.Canvas.Handle,0,0,DDF.Width,DDF.Height,
dd,ActivApp.Left,ActivApp.Top,ddf.Width,ddf.Height,MERGECOPY);
end else begin

DDF.Width:=Screen.Width;
DDF.Height:=Screen.Height;
StretchBlt(DDF.Canvas.Handle,0,0,Screen.Width,Screen.Height,
dd,0,0,Screen.Width,Screen.Height,MERGECOPY);
ReleaseDC(0,dd);
Выделеный код - делает снимок активного окна, а остальное - весь экран. Вопрос, почему выделеная часть не работает, что не так ?

Отправлено: 17:35, 03-02-2004

 

Аватара для Vich

admin


Сообщения: 1450
Благодарности: 7

Профиль | Отправить PM | Цитировать


нужно получить DC активного окна. а у тебя до условия к dd присваивается DC Desktop'a. это делать нужно внутри условия.
используй function GetWindowDC(hWnd: HWND): HDC; stdcall;
передай ей Handle активного окна и получишь его dc

[s]Исправлено: Vich, 1:46 4-02-2004[/s]

Отправлено: 01:43, 04-02-2004 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Почему не работает этот код

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Драйвер - [решено] Не работает CD/DVD привод (Код 39) oleg777f Microsoft Windows Vista 71 25-03-2013 17:19
EventID - Код: 6006 , код: 6009, код: 6005. Источник - Eventlog. Panathinaikos Устранение критических ошибок Windows 6 15-04-2010 16:22
почему не работает? E-mail Вебмастеру 7 12-05-2005 22:20
Почему не работает звук? BSDUsr Железо во FreeBSD 16 17-04-2005 05:46
почему не работает cgi? koresaram Вебмастеру 3 09-03-2004 19:41




 
Переход