Конференция "WinAPI" » Встроить свое окно в другое приложение [D7]
 
  • swerg (01.02.13 21:47) [0]
    Хочется встроить свое окно в другое приложение.
    Оно как-бы встраивается, но с отрисовкой какие-то странные беды: то видно встроенное окно, мышкой поводишь - пропадает, снова попереключаешь окна - опять появится "визуально", потом опять пропадет.
    При этом само окно явно есть - видно, что в то окно, куда встроил свое - не приходят сообщения мыши, да и Spy++ показывает наличие окна на положеном месте, но вот что с отрисовкой - понять не могу.

    Может кто подскажет как исправить?

    Думаю не важно, но код такой:

    ... здесь ищем хендл нужного окна в hInWin ....

     injectWin := TCustomControl.Create(Application);
     injectWin.ParentWindow := hInWin;
     Windows.GetClientRect(hInWin, chartWinRect);
     injectWin.Top := 0;
     injectWin.Left := 0;
     injectWin.Height := chartWinRect.Bottom;
     injectWin.Width := chartWinRect.Right;
     injectWin.Color := clGreen;
     injectWin.Show;
     BringWindowToTop(injectWin.Handle);

  • Rouse_ © (01.02.13 22:06) [1]
    Все очень просто, хоть ты и встроил окно внутрь чужого приложения, но его обработчик расположен у тебя.
    На вопрос: "как исправить?" имеет смысл пересмотреть архитектуру.
  • Игорь Шевченко © (01.02.13 23:04) [2]

    > Хочется встроить свое окно в другое приложение


    В Древнем Китае желающим странного отрубали голову.

    Надо встраивать DLL в чужой процесс и в ней уже делать работу с окном. Механизм описан у Рихтера.
  • Leonid Troyanovsky © (02.02.13 01:16) [3]

    > swerg   (01.02.13 21:47)  

    http://pda.delphimaster.net/?id=1259064819&n=5

    --
    Regards, LVT.
  • swerg (02.02.13 14:54) [4]
    Спасибо огромное, парни
    Особенно, конечно, Leonid Troyanovsky !
 
Конференция "WinAPI" » Встроить свое окно в другое приложение [D7]
Есть новые Нет новых   [134430   +4][b:0][p:0.001]