Q&A

  • Mdi Main Form에서 다른 응용프로그램(예:notepad.exe)를 호출했습니다
Mdi Main Form에서 다른 응용프로그램(예:notepad.exe)를 호출했습니다...

notepad window가 잘 뜨더군여....

근데 그 notepad window를 Mdi Main내의 child로 띄울순 없나여??

즉, notepad 자체가 독립적으로 실행되는것이 아니라

mdi application 내에서 실행되게 하고 싶다는 얘기죠....



가능한지 불가능한지 알려주십시요......

감사합니다....

2  COMMENTS
  • Profile
    타락천사... 2000.09.19 01:32
    안녕하세여.. 타락임다..^^



    MDI Main 폼에서 다른 애플을 호출했다면 당근 Child로 띄워야 합니다..



    MDI에서 SDI를 또 띄우면 어디선가 메세지가 새구 있다구 생각할수 있습니다..



    조금씩 새더라구 오래 쌓이면.. 메모리가 안남을수도 있습니다..



    흠.. 우선 제 생각상의 코드..



    procedure TMDIMainForm.Btn1Click(Sender: TObject);

    var

    H : HWND;

    begin

    H := FindWindow('notepad', nil);

    TMDIMainForm.SetParent(H, Self.Handle);

    end;



    안된다면.. 다른 분의 코드...



    var

    H: HWND;

    PH : HWND;



    implementation

    procedure TMDIMainForm.Btn2Click(Sender: TObject);

    begin

    H := FindWindow('notepad', nil);

    PH := Windows.GetParent(H);

    Windows.SetParent(H, Self.Handle);

    end;

    procedure TMDIMainForm.FormDestroy(Sender: TObejct);

    begin

    Windows.SetParent(H, PH);

    end;





    잘 작동될지 모르겠군여...



    즐푸하세여..



    타락천사......^^

  • Profile
    이재열 2000.09.20 19:34
    성심껏 답변해 주셔서 감사합니다. 타락천사님......

    그런데 그대로 실행을 해보니까 아무반응이 없네여.....

    가르쳐주신것이 어플리케이션을 프로그램을 호출하는것이 맞는지요??



    제가 책에서 보기론...



    WinExec('C:WINDOWSNOTEPAD.EXE', SW_NORMAL ); 로 메모장을 띄울수 있더라구여.

    그런데 메모장이 MDI의 Child로 안뜨고 독집적으로 뜨더라구여....



    혹시 메모장창을 MDI창 내로 즉 MDI Child창이 뜨는것처럼 할수는 없는지요???