|
VB로 Main Application을 만들고
BCB로 Dll을 만들어 사용합니다.
의문1
Dll안의 Form을 ShowModal() 되어있는 상태에서
taskbar 에서 다른 Application을 선택했다가 다시 VB Applicaton을 선택하면
Modal로 떠 있는 Form이 Active 되지 않고 VB Main 폼이 Active 된것처럼 보입니다.
Modal로 떠있는 Form의 Caption이 active되어야 하는데...
원인이 뭐죠?
의문2
Dll에서 Form을 생성하고 Form Careate될때
Application의 메세지를 Form의 AppMessage함수에 걸리도록 코딩했습니다.
Application->OnMessage = AppMessage;
// AppMessage는 Formxx::AppMessage(tagMSG &Msg, bool &Handled) 함수
이렇게 하면 Dll내에 있는 어떤 Form의 Event도 모두 AppMessage함수를 통과하는데...
Dll의 특정 Form의 ParentWindow를 VB 폼위에있는 Frame로 설정하면
Form1->ParentWindow= vbHwnd ;
ParentWindow가 VB의 Hwnd로 설정된 Form에서 발생하는 message는 AppMessage함수를 통과하지 않습니다.
왜그런지 알고십습니다.
Dll에서 Application 객체는 무엇을 의미하는지 궁금하구요
Dll에서 Application->Handle 을 VB의 핸들로 설정했을때 :: Application->Handle = vbHwnd
전체 프로그램에서 발생하는 Message처리가 어떻게 되는 궁금합니다.
|