|
void __fastcall TForm2::CreateParams(TCreateParams &Params)
{
TForm::CreateParams(Params);
Params.WndParent = Application->MainForm->Handle;
}
이렇게 하시면 Sub폼이 항상 메인보다 위에 올라가게 되더군요...
대신 문제가 MainForm minimize 될때 sub폼이 이미 minimize 되어있으면
같이 숨어야 하는데 계속 남아있는 문제가 있더군요...
그래서 이 부분은 직접 구현했습니다.
장성호 님이 쓰신 글 :
: main폼이 active되었을때도 main폼에 맨 앞쪽에 오는게 아니라
: sub폼이 main폼 앞쪽에 보이게 하려면?
:
:
: 2007로 했을경우에는 아무코딩도 해주지않아도 되던데..
: 2007 이하 버젼에서 아래와 같이 기능을 구현하고 싶습니다.
:
: [상황]
: -SDI 로 어플리케이션이구요
: -main폼이 있구, 독립된 sub폼이 2개이상 Show로 떠 있는 상황입니다.
:
: [원하는바]
: -main폼이 active되었을때도 main폼에 맨 앞쪽에 오는게 아니라
: sub폼이 main폼 앞쪽에 배치되어있게 하고 싶습니다.
: -sub폼끼리는 active된 폼이 앞쪽에 오는게 맞구요
:
: - stayontop은 아닙니다.
: 다른어플리케이션은 active 될때 얼마든지 앞쪽에 올수 있어야 하니까요
:
: SetWindowPos로 메인폼과 sub폼이 active/deactive/wm_poschanging 때
: hwndInsertAfter를 조작하면서 아무리 해봐도 깔끔하게 안되네요
:
: 마우스 클릭으로 active를 바꿀때는 크게 문제없이 되는데..
:
: [안될때]
: - 메인폼이 minimize되었다가 복구될때..
: - 메인폼의 caption을 잡고 폼을 움직이다가 놓았을때..
: 이런경우에는 잘안되네요.. 쩝쩝..
:
: 2007(delphi2007 또는 c++builder2007)에서는 이기능을 어떻게 구현했는지 알고싶고
: 그이하버젼 ( 현재 c++Builder 6.0 과 delphi7사용)에서 구현하려면 어떻게 해야할지...
:
: 조언좀 부탁드립다.
:
: 감사합니다.
|