Ich habe ein Panel (Container), in diesem Panel befindet sich ein OpenGL Render Panel und 2 Scrollbars (eine Vertikale Rechts und eine Horizontale Unten) so wie man es ein Renderprogrammen z.b. kennt oder in Mal-Programmen.
Das OpenGL Render Panel hat eine Maximale Größe.
Beim Resize vom Hauptcontainer, werden die Scrollbars schön nach Rechts und Unten Positioniert und in der Größe des Containers angepasst. Das OpenGL Render Panel wird hier ebenfalls angepasst auf die Containergröße - Scrollbar Größen.
Nun soll ein etwas grösseres Quad (2D) in OpenGL (Ortho) dargestellt werden und mit den Scrollbars verschoben werden können. Das wollte ich lösen über ein simples X, Y Offset das dem Quad dazugerechnet wird und dieses Offset soll beim Scrollen der 2 Bars sowie beim Resize des Containers angepasst werden.
Allerdings liegt hier mein Problem, denn ich habe noch nicht richtig herausgefunden wie so ein offset berechnet werden muss. Vor allem wenn die Vertikale Scrollbar ganz unten Positioniert ist, man somit also den komplett unteren Teil des Quads sehen würde, ich nun aber das Fenster in der Höhe vergrößere, dann schaff ich es nicht das sich der Offset dann erhöht/neu berechnet... Denn ich so einen Fall wird der Viewport Höher, aber da meine Vertikale Scrollbar unten ist, seh ich nach und nach die Oberen Teile.
Size ms = new Size(sMaxViewSize.Width - r.Width, sMaxViewSize.Height - r.Height);
float x = (float)ms.Width / 100.0f * (float)pViewOffset.X; float y = (float)ms.Height / 100.0f * (float)pViewOffset.Y;
Scrollbars müssen beide von 0-100 eingestellt sein.
Im Scroll event, muss einfach der Wert der Scroll gespeichert werden und ein Repaint veranlasst werden.
Achja, und was mein Hauptproblem war, lag die ganze Zeit an der Scrollbar Einstellung (LargeChange), das stand auf 10, musste das auf 1 stellen. Das hat irgendwie bewirkt, das die bereich von 0-100 nie komplett erreicht wurde. Immer nur von 0-90.
Mitglieder in diesem Forum: 0 Mitglieder und 45 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.