@likilix
Лицемер

Почему зависает приложение при обработки сообщения WM_LBUTTONUP/WM_RBUTTONUP?

Использую C++Builder XE
class TRailwayMap : public TCustomControl
   {
       typedef TCustomControl Inherited;

    protected:
       BEGIN_MESSAGE_MAP
         MESSAGE_HANDLER(WM_RBUTTONUP, TWMRButtonUp, RmRMouseUp);
         MESSAGE_HANDLER(WM_LBUTTONUP, TWMLButtonUp, RmLMouseUp);
       END_MESSAGE_MAP(Inherited);

   void __fastcall CreateWnd(void)
   {
     Inherited::CreateWnd();
   }
    void __fastcall RmRMouseUp(Messages::TWMRButtonUp &Message) {
      
    }

    void __fastcall RmLMouseUp(Messages::TWMLButtonUp &Message) {
      
    }

    __fastcall TRailwayMap::TRailwayMap(Classes::TComponent* AOwner)
    	 : Inherited(AOwner)
    {

    }

   };
  // Код находится в конструкторе главной формы
  
   RailwayMap = new TRailwayMap(this);
   RailwayMap->Align = alClient;
   RailwayMap->Parent = this;


Если несколько раз подряд кликнуть по компоненту то форма зависает. Если в обработчик добавить ReleaseCapture(); то зависания не происходит. Можно ли как-то избавится от этот проблемы не добавляя ReleaseCapture(); ?
  • Вопрос задан
  • 76 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы