Hallo
ich sitz grad seit geschlagenen zwei Stunden an nem Problem, von dem ich dachte, dass ich da keine Minute für brauch....:
Und zwar möchte ich das UI eines VST-PlugIns, in einem Fenster anzeigen:
Das Fenster soll natürlich die richtige Grösse bekommen, daher lese ich
Jetzt habe ich das hier:
... ich bin wirklich alles andere als ein Mathegenie, aber es muss doch möglich sein, das genau andersrum zu berechnen, also Pixel als Argument übergeben und Units rausbekommen?
Und wenn ich dann den richtigen Wert aus dieser Funktion hätte, müsste ich den doch bloss mit dem Faktor der Desktop-Skalierung (z.B: 1.25 bei 125%) multiplizieren oder?
Oder beachte ich irgendwas Anderes nicht und bin komplett auf dem Holzweg?
______________________________________________________________________________________________________________________________________________________________
Edit: Hab ne Menge recherchiert und herausgefunden, dass wohl eine DIP (Device Independent Unit) = 1 / 96 inch sind (bei 96 dpi). Um herauszufinden wieviel dpi ich hab, nehm ich Folgendes, und da kommt tatsächlich auch
Damit sollte eigentlich alles stimmen, tut es aber nicht
Von meinem Fenster wird gerade mal ein winzig kleiner Teil dargestellt...
Also sind entweder die Infos, die ich gefunden habe, falsch oder mein Fenster verwendet doch keine DIPs für Width und Height...
________________________________________________________________________________________________________________________________________________________________
Edit2:
Hab das Problem gelöst
In meinem Fenster hab ich ja eine WinForms-PictureBox zum Anzeigen des Plugin-UIs. Dieser hab ich einfach Breite und Hoehe aus
Wäre trotzdem interessant zu wissen, was da bei meinem Code falsch ist...
ich sitz grad seit geschlagenen zwei Stunden an nem Problem, von dem ich dachte, dass ich da keine Minute für brauch....:
Und zwar möchte ich das UI eines VST-PlugIns, in einem Fenster anzeigen:
Das Fenster soll natürlich die richtige Grösse bekommen, daher lese ich
vstInfo.editorHeight
und vstInfo.editorWidth
aus, welche als Integer kommen. Leider steht in den Docs davon nicht drin, ob das nun Pixel sein sollen, oder was, aber ich gehe mal davon aus...Jetzt habe ich das hier:
... ich bin wirklich alles andere als ein Mathegenie, aber es muss doch möglich sein, das genau andersrum zu berechnen, also Pixel als Argument übergeben und Units rausbekommen?
Und wenn ich dann den richtigen Wert aus dieser Funktion hätte, müsste ich den doch bloss mit dem Faktor der Desktop-Skalierung (z.B: 1.25 bei 125%) multiplizieren oder?
Oder beachte ich irgendwas Anderes nicht und bin komplett auf dem Holzweg?
______________________________________________________________________________________________________________________________________________________________
Edit: Hab ne Menge recherchiert und herausgefunden, dass wohl eine DIP (Device Independent Unit) = 1 / 96 inch sind (bei 96 dpi). Um herauszufinden wieviel dpi ich hab, nehm ich Folgendes, und da kommt tatsächlich auch
Units = 96
raus:Damit sollte eigentlich alles stimmen, tut es aber nicht
Von meinem Fenster wird gerade mal ein winzig kleiner Teil dargestellt...
Also sind entweder die Infos, die ich gefunden habe, falsch oder mein Fenster verwendet doch keine DIPs für Width und Height...
________________________________________________________________________________________________________________________________________________________________
Edit2:
Hab das Problem gelöst
In meinem Fenster hab ich ja eine WinForms-PictureBox zum Anzeigen des Plugin-UIs. Dieser hab ich einfach Breite und Hoehe aus
vstEditorWidth
und vstEditorHeight
mitgegeben und das Fenster auf PlugInFenster.SizeToContent = Windows.SizeToContent.WidthAndHeight
gesetzt.Wäre trotzdem interessant zu wissen, was da bei meinem Code falsch ist...
Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „kafffee“ ()