감사 합니다...
방안 1을 해보았는데.. Test는 잘됬습니다. ^^
방안 2는.. Cannot convert 'void[_fastcall *[_closure][TMessage *]..... 에러 나네용.. ㅠㅠ
방안 3은 않해봤어요.. 방안 1이 되서요 ^^
댓글 감사 합니다. 즐거운 하루 보네세요..
장성호 님이 쓰신 글 :
: [문제원인]
: 메세지 수신하는쪽에서요...
:
: void __fastcall TForm1::WndProc(Messages::TMessage *Message)
: 그냥 위와같이 함수 선언해 둔다고 해서 WindowMessage가 저쪽으로 들어오지 않습니다.
: 디버그 모드로 run한후에 Editer를 보세요
: 아마 한번이라도 함수를 타게되면 에디터 왼쪽에 쩜이 찍히는데...
: WndProc 함수는 찍혀있지 않을꺼예요
:
:
: [해결방법]
:
: 방안1. Dispatch를 쓰던지 ...
: virtual void __fastcall Dispatch(void *Message);
:
http://cbuilder.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_tip&no=542
:
:
:
: 방안2. 아니면 SubClassing 하는방법도 있구요
:
: TWndMethod OrgWinProc;
: void __fastcall TForm1::FormCreate(TObject *Sender)
: {
: OrgWinProc=this->WindowProc;
: this->WindowProc=WndProc2;
: }
: //---------------------------------------------------------------------------
:
: void __fastcall TForm1::WndProc2(Messages::TMessage &Message)
: {
: OrgWinProc(Message);
: if( Message.WParam == 100 )
: ShowMessage("!");
: }
: //---------------------------------------------------------------------------
:
: 방안3. 메세지 맵을 쓰셔도 됩니다.
:
: *.h
: void __fastcall TForm1::ShowMessageProc(TMessage& Msg);
:
: BEGIN_MESSAGE_MAP
: VCL_MESSAGE_HANDLER(WM_USER + 1234, TMessage, ShowMessageProc)
: END_MESSAGE_MAP(TForm);
:
:
: *.cpp
: void __fastcall TForm1::ShowMessageProc(TMessage& Msg)
: {
: if( Msg.WParam == 100 )
: ShowMessage("!");
: }
: .....
:
: 그럼....
:
:
:
: 볼랜드 어렵네요 ㅠㅠ 님이 쓰신 글 :
: : 한개의 폼(exe)에다 이렇게 정의 해놓쿠..
: : void __fastcall TForm1::WndProc(Messages::TMessage *Message)
: : {
: : //
: : if( Message->WParam == 100 )
: : ShowMessage("!");
: : }
: :
: :
: : 다른 폼(exe)에다가 이렇게 정의 했습니다.
: : #define WM_USER_SHOWMSG WM_USER + 1234
: :
: : HWND hWND = NULL;
: : hWND = FindWindow( 0, "Show");
: :
: : if( hWND != NULL )
: : {
: : PostMessage( hWND, WM_USER_SHOWMSG, 100, 0 );
: : }
: :
: : 왜 않되는지 좀 알려주세요...
: : 인터넷 뒤지다가 나름 이해한 다음에 한건데..