Hi!
Ich bin an einem größeren Projekt dran und möchte gerne wissen, wie ich ein VST-Plugin, daß das
handle eines Panels als parent nimmt(als Anzeige), dazu bringen kann, daß ich mausaktionen direkt an das Plugin senden kann?
Also im Grunde genommen möchte ich
1. VST Plugin nicht anzeigen (kein Visuelles Fenster)
und dieses
2. Über netzwerk mit Mouseeingaben steuern können (Click, Move usw)
Derzeit hab ich es unglücklich gelöst, indem ein Form mit einem Panel drauf - und das Plugin als child des Panels als "
Gui" übernimmt und die Maus per systemweite mouse commands gesteuert wird - das ist unschön und ich kann auch nicht mehrere plugins gleichzeitig übers netzwerk steuern, weil es ja nur eine Maus gibt
Die Visuelle Rückmeldung funktioniert via "Render to Bitmap" und dann per PNG verschickt - das ist atm kein Problem.
Was ich bisher ausprobier habe sind per "postmessage" - messages an das
handle des plugins zu senden (ist child des panels)
es geht auch TEILWEISE - es werden clicks angenommen - aber moves und clicks auf manche grafischen knöpfe des plugins werden nicht übernommen
mit winsight zeigt es mir auch massenhaft messages an wie "WM_MOUSELEAVE" was wohl das ganze auch zum wackeln bringt, wenn die mouse neben dem fenster sitzt
im prinzip müsste ich alle mousemessages an das VST plugin abfangen und "vergessen" und dann meine eigenen mouse messages an das
handle schicken
ein wndproc überschreiben des panels hat irgendwie nicht funktioniert - ich kann das plugin auf dem "hostrechner" trotzdem per maus steuern wie gehabt
hier hab ich die wndproc überschrieben - was wohl nicht funktioniet:
Delphi-Quellcode:
type Tpanel2 = class(Tpanel)
public
procedure WndProc(var Message: TMessage); override;
end;
procedure Tpanel2.WndProc(var Message: TMessage);
begin
case message.Msg of
WM_MOUSEMOVE: exit;
WM_MOUSELEAVE: exit;
WM_LBUTTONDOWN: exit;
WM_LBUTTONup: exit;
WM_RBUTTONDOWN: exit;
WM_RBUTTONup: exit;
WM_CHILDACTIVATE: exit;
end;
inherited WndProc(Message);
end;
Das echte Leben ist was für Leute...
... die im Internet keine Freunde finden!