빌더5로 테스트 하진 않았지만
일반적으로 통하는 방법입니다.
TForm의 CreateParams함수를 오버라이드해서 파라메타 설정을 조금 바꿔주면 됩니다.
아래는 Dll안에 있는 폼의 CreateParams함수 샘플 코드입니다.
void __fastcall TForm2::CreateParams(TCreateParams &Params)
{
TForm::CreateParams(Params);
Params.ExStyle= WS_EX_APPWINDOW; //TaskBar 나타남
//Params.ExStyle=WS_EX_WINDOWEDGE; .//TaskBar에 나타나지 않음
}
//---------------------------------------------------------------------------
DeskTopWindow를 Parent로 설정하는것 필요없습니다.
위함수 만 들어가면 만사 해결됩니다.
당근 최소화 최대화 문제도 해결되구요..
그럼 ..
마제 님이 쓰신 글 :
: 빌더5로 만들어진 프로그램에 빌더6로만든 dll을 붙일려니 여러가지로 힘드네요....
:
: 문제가 발생하는 것이 몇가지가 있는데....이리저리 검색을 해도 해결 방법을 잘 모르겠네요...
:
: 일단 많이 알려진...작업 표시줄에 또다른 작업창이 표시 된다는 문제는
:
: http://www.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_tip&no=45
:
: 로 해결을 했습니다만....
:
: 위의 방식이 만능이 아닌것이.....어플리케이션이 최소화되면 dll폼도 같이 최소화 되어이야 하는데
:
: 얘네들은 같이 최소화가 안되네요....그래서 Application이 최소화 될때 이벤트를 잡아서 같이 최소화시킨담에
:
: 다리 리스토어 시킬려면 dll폼만 리스토어 되고 메인폼은 그냥 최소화 되어있네요....
:
: 이거 해결하려면 각종 이벤트 잡아서 많이 삽질을 해줘야 하는데 이런 방법 말고 다른 방법은 없는지...
:
: 그리고 희안하게....테스트할때 빌더 6로 테스트 메인 프로그램을 만들어서 쓸때는 아이콘이 메인의 아이콘을
:
: 따라서 가는데 빌더5의 기존 프로그램에 붙일려고 하니까.....dll폼이 뜨면 빌더 기본 아이콘으로 뜨네요...
:
: 거참 희안하네....이건 어떻게 변경해줘야 하나요? -_-a
|