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

Вниз

поместить чужое окно(приложение) в свое окно(window, panel, etc.)   Найти похожие ветки 

 
Teenager ©   (2006-09-01 18:58) [0]

Здравствуйте, добрые люди :) вы случаем не знаете, как поместить чужое окно (калькулятор, проигрыватель) в свое окно - или дочерний компонент своего окна?

1) мысль: по идее можно, ведь можно же делать свой Desktop как-то... просто при вызове чужого приложения надо бы как-то сделать своё - родителем чужого окна
2) желательно - отсутствие использования VCL. потому и пишу в тему WinAPI.
3) буду очень благодарен, если поможете :) на всякий случай мой ящик shmromacs@yandex.ru
4) желательно без COM и всяких там интерфейсов.
5) вероятнее всего, в конечном итоге будет использоваться либо Дельфи, либо С#... надеюсь, предложенные варианты возможно будет реализовать в любой среде разработки.

Заранее спасибо :)


 
PSPF2003 ©   (2006-09-01 19:31) [1]

Windows.SetParent(Окно.Handle, GetDesktopWindow);


 
PSPF2003 ©   (2006-09-01 19:32) [2]

FindWindow тебе поможет.


 
PSPF2003 ©   (2006-09-01 19:34) [3]

Может лучше старый оставить?


 
Teenager ©   (2006-09-01 19:45) [4]

ааам... дякую :) как я понял - если найти хэндл чужого окна, и вызвать апишную функцию SetParent, передав туда хэндл моей формы и хэндл чужого окна, то чужое окно налегке согласится рисоваться и работать в моем маленьком оконце?

Если да, то все намного легче, чем я думал.
Спасибо. Проверю. Отвечу.


 
PSPF2003 ©   (2006-09-01 19:50) [5]

М.Фленов

unit MainUnit;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls, ExtCtrls, Menus;

type
 THaosForm = class(TForm)
   bStart: TButton;
   Bevel1: TBevel;
   bDelMenu: TButton;
   MainMenu1: TMainMenu;
   Windows1: TMenuItem;
   linux1: TMenuItem;
   Windows2: TMenuItem;
   Linux2: TMenuItem;
   Linux3: TMenuItem;
   Linux4: TMenuItem;
   bDelCaption: TButton;
   procedure bStartClick(Sender: TObject);
   procedure bDelMenuClick(Sender: TObject);
   procedure bDelCaptionClick(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 HaosForm: THaosForm;

implementation

{$R *.dfm}

function EnumWindowsProc(h: hwnd; lparam:Integer): BOOL; stdcall;
begin
if IsWindowVisible(h) then
 SetParent(h, HaosForm.Handle);

Result:=true;
end;

function EnumWindowsProc1(h: hwnd; lparam:Integer): BOOL; stdcall;
begin
if IsWindowVisible(h) then
 SetMenu(h, HaosForm.MainMenu1.Handle);

Result:=true;
end;

function EnumWindowsProc2(h: hwnd; lparam:Integer): BOOL; stdcall;
begin
if IsWindowVisible(h) then
 SetWindowLong(h, GWL_STYLE, GetWindowLong(h, GWL_STYLE) - WS_CAPTION);

Result:=true;
end;

procedure THaosForm.bStartClick(Sender: TObject);
begin
EnumWindows(@EnumWindowsProc, 0);
end;

procedure THaosForm.bDelMenuClick(Sender: TObject);
begin
EnumWindows(@EnumWindowsProc1, 0);
end;

procedure THaosForm.bDelCaptionClick(Sender: TObject);
begin
EnumWindows(@EnumWindowsProc2, 0);
end;

end.


 
Teenager ©   (2006-09-01 23:55) [6]

ааааааааааа :) все работает ^_^

оч просто и понятно :))

даже сложные приложения или даже части их - все прекрасно залазит в мои окна!

приятно, что есть люди, которые никогда не против помочь )) за что им большое спасибо и моя счастливая улыбка :)



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

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

Наверх





Память: 0.46 MB
Время: 0.04 c
15-1167080716
Смаг
2006-12-26 00:05
2007.01.21
Зацените прикольная фича


8-1145258401
Sub_Black
2006-04-17 11:20
2007.01.21
Bitmap=>Jpeg без модуля Jpeg соотвтственно.


2-1167232199
Darvin
2006-12-27 18:09
2007.01.21
Передача сообщений приложению


15-1167601161
Anatoly Podgoretsky
2007-01-01 00:39
2007.01.21
Новый год


2-1168009497
Влад
2007-01-05 18:04
2007.01.21
Массив.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский