Jak odebrać WM_USER+2

0

Witam

Mam programik który po zakończeniu działania wysyła zdarzenie WM_USER+2

Chciałbym teraz zrobić programik w C++ Builder który zmieni nazwę tekstu na przycisku gdy nadejdzie zdarzenie WM_USER+2 z w/w programu.

Z tego co wyczytałem muszę skorzystać z WinAPI. Niestety nie wiem jak to zrobić w C++ Builder.

1

Podepnij się pod zdarzenie WindowProc.

0

@0x666 można tak, a można i moim zdaniem bardziej elegancko używając mapy komunikatów https://4programmers.net/C/Artyku%C5%82y/Mapa_komunikat%C3%B3w

0

Dzięki za podpowiedz.

W pierwszej kolejności próbowałem przetestować WindowProc znalazłem przykład niestety nie działa.

Dodałem w pliku Unit1.h

private:	// User declarations
virtual void __fastcall WndProc(TMessage &Msg);

W pliku Unit1.cpp dodałem

#define WM_TEKST 	(WM_USER+2)  /to umieściłem na początku.

void __fastcall TForm2::WndProc(TMessage &Msg)
{
 switch(Msg.Msg)
 {
   case WM_TEKST:

						Form2->Button1->Caption="test";
						break;
 }
TForm::WndProc(Msg);
}

Niestety tekst przycisku nie zmienia się.
Czy Ktoś ma jakieś sugestie.

0

Tafia.
Generalnie komunikat wysyłam z programu tak

_WinAPI_PostMessage($hWnd, $WM_USER+2, 0, 0)

Gdzie on trafia to nie wiem.

Mam napisany podobny programik w C++ Visual Studio WinAPI i gdy przychodzą komunikaty WM+USER+2 to program wyświetla odpowiedni tekst.

1 użytkowników online, w tym zalogowanych: 0, gości: 1