Komunikaty

0

Na formatce mam położony komponent Panel oraz ustawione obramoanie formy jako NONE. Chciałbym aby przy kliknięciu na panel okno zachowywało sie tak jak bym klikną na Caption czyli belkę tytułową. Inaczej chce zamienić standardową belkę panelem który sobie zmodyfikuje. Wiem że można to zrobić poprzez wysyłanie komunikatów. Nie było byt problemu gdy bym chciał aby przy kliknięciu myszki forma zachowywała sie jakbym klikną na belkę ale z Panelem jest problem.
Jak dodać / zmienić obsługę komunikatów dla Panela.

Pozdrawiam
Radek B.

0

O tak na przykład mogłoby wyglądać jedno z rozwiązań:
tworzysz swój komponent pochodny od TPanel i w klasie dajesz:

BEGIN_MESSAGE_MAP
    MESSAGE_HANDLER(WM_NCHITTEST, TMessage, MoveIt);
END_MESSAGE_MAP(TPanel)

Potem tylko obsługa komunikatu:

void __fastcall TFProgram::MoveIt(TMessage &Msg)
{TPanel::Dispatch(&Msg);
 if (Msg.Result == HTCLIENT) Msg.Result = HTCAPTION;
}

Nie daję gwarancji na działanie tego sposobu - na pewno działa od dla formy :).

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