|
아래와 같이 RegisterWindowMessage를 사용해서 하니 동작하네요.
int update = RegisterWindowMessage("CONFIGURATION");
SendMessage(HWND_BROADCAST, update, 0, 0);
civilian님 조언 감사합니다. ^^
그런데 Win7에서 테스트 해보니 가끔 SendMessage()함수에서 렉이 걸릴때가 있습니다.
HWND_BROADCAST를 사용하지 않고 HWND를 넣으면 잘 되는데 이 부분은 이상하네요.
좀더 테스트 해 봐야겠습니다.
그럼 좋은하루 되세요~~~^^
civilian 님이 쓰신 글 :
: RegisterWindowMessage 를 찾아보아요~
:
: newhuni 님이 쓰신 글 :
: : 안녕하세요.
: : PostMessage()함수 사용법좀 조언 구합니다.
: :
: : 메인 프로그램에서 설정이 변경되면 변경된 값을 서브 프로그램에 반영하려고 합니다.
: : 설정 값을 파일에 기록하고 전체 메시지를 보내 모든 서브 프로그램이 설정 값을 읽도록 하려고 합니다.
: : 서브 프로그램이 한개이면 핸들값을 얻어서 메시지를 보내면 되는데
: : 서브 프로그램이 통신 프로그램이라... 통신 포트에 따라 할당되어 몇개가 될지 모릅니다.
: : 그래서 생각한 방법이 PostMessage의 HWND_BROADCAST인데... 코드는 단순한데 동작은 안되네요. ^^;;
: :
: : 어느 부분이 잘못 된걸까요? 조언 부탁드립니다.
: : //------------------------------------------------------------
: : --> 메인 프로그램
: : #define MESSAGE_EXCEPTION WM_USER + 102
: : void __fastcall TForm1::Button1Click(TObject *Sender)
: : {
: : PostMessage(HWND_BROADCAST,MESSAGE_EXCEPTION,0,0);
: : }
: : //------------------------------------------------------------
: : --> 서브 프로그램(main.h)
: : public :
: : void __fastcall OnExceptionUpdate(TMessage &msg);
: : BEGIN_MESSAGE_MAP
: : VCL_MESSAGE_HANDLER(MESSAGE_EXCEPTION, TMessage, OnExceptionUpdate);
: : END_MESSAGE_MAP(TForm)
: :
: : --> 서브 프로그램(main.cpp)
: : void __fastcall TForm1::OnExceptionUpdate(TMessage &msg)
: : {
: : ShowMessage("update");
: : }
: : //------------------------------------------------------------
|