Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Как вывести на видео выход только одно из окон моей програаммы  (Прочитано 9414 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Logic
Гость
« : 27-08-2005 23:14 » 

Всем привет.

У меня вот какая проблема.
Мне надо вывести на видео выход только одно из окон моей программы
(что бы кроме неё на видео выход ни чего не поступало).
Если есть у кого-нибудь похожие примеры дайте пожалуйсто.
Очень надо!
Записан
zubr
Гость
« Ответ #1 : 28-08-2005 07:56 » 

Ну вариантов много...
Как один из простейших, можно сделать все окна кроме своего невидимыми. Когда то делал подобное на Delphi, если интересно, могу кинуть пример.
Записан
Logic
Гость
« Ответ #2 : 28-08-2005 12:45 » 

Да, интересно. Скинь пожалуйса пример.
А рабочего стола тоже не будет видно? (Должно быть видно, только окно программы.)
Дальше его накладывают на видео.
Записан
zubr
Гость
« Ответ #3 : 28-08-2005 14:30 » 

Рабочего стола не будет видно. Вот код:
Код:
var
  count_window:cardinal;
  WinHandles:array [1..1000] of cardinal;

function EnumProcHide(WinHandle: HWnd; Param: LongInt): Boolean; stdcall;
begin
 If (GetParent(WinHandle) = 0) and (not IsIconic(WinHandle)) and
  (IsWindowVisible(WinHandle)) then
 begin
  ShowWindow(WinHandle, SW_HIDE);
  inc(count_window);
  WinHandles[count_window]:=WinHandle;
 end;
 EnumProcHide:=TRUE;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 count_window:=0;
 FillChar(WinHandles, 1000, 0);
 EnumWindows(@EnumProcHide, 0);//сделать все окна невидимыми
 ShowWindow(Handle, SW_SHOW);//сделать свое окно видимым
end;

procedure TForm1.FormDestroy(Sender: TObject);
var
  i:Integer;
begin
 For i:=1 to count_window do
 ShowWindow(WinHandles[i], SW_SHOW);//при закрытии приложения, сделать все невидимые окна видимыми
end;

« Последнее редактирование: 28-08-2005 14:31 от zubr » Записан
Logic
Гость
« Ответ #4 : 28-08-2005 17:43 » 

Спасибо за код, но в этом варианте виден фон рабочего стола.
Если сигнал с видео выхода (т.е. то чот получилось в результате выше изложенного кода) наложить на видео, то его (видео) не будет видно.
Надо чтобы в результате наложения, накладывалось только окно моей программы. А за окном было видно видео
« Последнее редактирование: 28-08-2005 18:05 от Logic » Записан
digitals
Гость
« Ответ #5 : 29-08-2005 07:29 » 

Если сигнал с видео выхода (т.е. то чот получилось в результате выше изложенного кода) наложить на видео, то его (видео) не будет видно.
Надо чтобы в результате наложения, накладывалось только окно моей программы. А за окном было видно видео
на сколько я понимаю, даже если будет выводится только окно программы, вся остальная часть экрана будет черной, например, и эффект от наложения будет тот же. И вообще, что в данном случае подразумевается над наложением ? Ведь микширование видео это не тоже самое, что микширование звука. Там простым сложением сигнала не обойдешся ...
Записан
Logic
Гость
« Ответ #6 : 29-08-2005 09:52 » 

Есть два компьютера.
На одном запущена моя программа. На видео выходе этого компьетера должно быть только окно моей программы.
На втором стоит титровальная плата, которая будет накладывать этот сигнал на видео.
Записан
digitals
Гость
« Ответ #7 : 29-08-2005 17:37 » 

в этом варианте виден фон рабочего стола.
В таком случае проще рабочий фон сделать черным Улыбаюсь. Или делать его черным на время  работы программы
Записан
zubr
Гость
« Ответ #8 : 29-08-2005 17:55 » 

Мда... чтоб от фона избавиться, придется обрабатывать вывод на видеокарте в режиме ядра, то бишь драйвер Жаль
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines