C ++ Builder XE, Передача и обработка пользовательских сообщений

Я пытаюсь узнать, как передавать и обрабатывать сообщения в приложении VCL форм. Я копался в интернете в течение некоторого времени и нашелэтот

Предположим, у меня есть индикатор выполнения, который я хочу обновить с помощью сообщений (кстати, если есть какой-либо другой лучший способ, мне не терпится его услышать) Итак, я сделал простой проект для тестирования материала и вот что у меня есть (RECEIVER - это имя формы с индикатором выполнения, SENDER - кнопка, используемая для отправки сообщений, updBar - это функция обновления индикатора выполнения, а 123456 - это идентификатор сообщения, которое я хочу использовать): 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

Как видите, я определил как функцию обработки, так и соответствующий обработчик сообщения для моего сообщения. Но когда я просматриваю его через отладчик (после отправки сообщения с помощью кнопки), точка выполнения никогда не переходит ни в мою функцию, ни в строку обработчика. заранее спасибо

Ответы на вопрос(1)

Ваш ответ на вопрос