C ++ Builder XE, Benutzerdefinierte Nachrichten übergeben und verarbeiten

Ich versuche zu lernen, wie man Nachrichten in einer VCL-Formular-App weitergibt und verarbeitet. Ich habe einige Zeit im Internet gebuddelt und gefundendiese

Angenommen, ich habe einen Fortschrittsbalken, den ich mithilfe von Nachrichten aktualisieren möchte (wenn es auch einen anderen besseren Weg gibt, bin ich gespannt darauf, ihn zu hören). Also habe ich ein einfaches Projekt erstellt, um das Zeug zu testen, und hier ist, was ich habe (RECEIVER ist ein Name von a Formular mit Fortschrittsanzeige, SENDER ist eine Schaltfläche zum Senden von Nachrichten, updBar ist eine Funktion zum Aktualisieren der Fortschrittsanzeige und 123456 ist eine Nachrichten-ID, die ich verwenden möchte): Unit1.cpp:

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TRECIEVER *RECIEVER;
//---------------------------------------------------------------------------
__fastcall TRECIEVER::TRECIEVER(TComponent* Owner)
    : TForm(Owner)
{
}
void __fastcall TRECIEVER::barUPD(TMessage& msg){
    BAR->StepIt();
}
//---------------------------------------------------------------------------
void __fastcall TRECIEVER::SENDERClick(TObject *Sender)
{
//BAR->StepIt();
PostMessage(FindWindow(0,(wchar_t*)"RECIEVER"),123456,0,0);
}

Unit1.h:

#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <System.Classes.hpp>
#include <Vcl.Controls.hpp>
#include <Vcl.StdCtrls.hpp>
#include <Vcl.Forms.hpp>
#include <Vcl.ComCtrls.hpp>
//---------------------------------------------------------------------------
class TRECIEVER : public TForm
{
__published:    // IDE-managed Components
    TButton *SENDER;
    TProgressBar *BAR;
    void __fastcall SENDERClick(TObject *Sender);
private:    // User declarations
public:     // User declarations
    void __fastcall barUPD(TMessage& msg);
    __fastcall TRECIEVER(TComponent* Owner);
    BEGIN_MESSAGE_MAP
    MESSAGE_HANDLER(123456,TMessage,barUPD);
    END_MESSAGE_MAP(TForm)
};
//---------------------------------------------------------------------------
extern PACKAGE TRECIEVER *RECIEVER;
//---------------------------------------------------------------------------
#endif

Wie Sie sehen, habe ich sowohl die Bearbeitungsfunktion als auch den entsprechenden Nachrichten-Handler für meine Nachricht definiert. Aber wenn ich es über den Debugger durchschaue (nachdem ich die Nachricht über die Schaltfläche gesendet habe), scheint der Ausführungspunkt niemals weder auf meine Funktion noch auf die Handler-Zeile zu verweisen. Danke im Voraus

Antworten auf die Frage(1)

Ihre Antwort auf die Frage