PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Form in Form


Steup
09.06.2002, 01:14
Also ich bins ma wieder....

ich suche nach einer moglichkeit eine form in einer anderen form anzuzeigen, sprich in einer art picture box soll die form angezeigt werden. wenns da irgendeine möglichkeit gibt das zu realisieren, wäre ich ein glücklicher mensch... das hoffe ich zumindest...


MeltDown
09.06.2002, 01:38
willst du dann auch auf die Form zurückgereifen können ? oder nur ein Bild von dem Form machen, und dann in Picturebox anzeigen ?

Wenn du dass 2te meinst, sag es dann. Dann suche ich dir ein code raus.

cya

Mimo
09.06.2002, 10:50
und wenn Du das 1. meinst... :D

Mit einem API-Call kannst Du das realisieren:

Hier die Deklaration:

Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long


Form2 als "Unterform" von Form1 setzen:

SetParent Form2.hWnd, Form1.hWnd


Form2 aus Form1 wieder herausholen:

SetParent Form2.hWnd, 0

Was mir dabei nur nicht gefällt:
Wenn die innere Form aus dem sichtbaren Bereich herauskommt, erscheinen bei der äusseren Form nicht automatisch Bildlaufleisten. Diese muss man selbst einbauen.


3. Möglichkeit

Kennst Du die Möglichkeiten, die Du mit einer MDI-Form hast? Dort kannst Du "ChildForms" unterbringen und wenn diese den sichtbaren Bereich verlassen gibt's automatisch Bildlaufleisten. Du brauchst weiterhin keine APIs, sondern musst Deinem Projekt nur eine MDIForm hinzufügen.

Mimo
09.06.2002, 10:53
ähm... das mit der Picturebox hab ich ganz vergessen. Die ParentForm (also die äussere Form) muss nicht zwangsläufig eine VB-Form sein, sondern kann alles sein, was ein hWnd hat, weil dies für Windows-API alles Fensterklassen sind.

Steup
09.06.2002, 14:05
tut mir ja leid, aber irgendwie fungiert das ganze überhaupt nicht... der gibt immwer direkt nen kompilier fehler aus, in der dejklaration, aber die is eigentlich richtig, zumindest ist die im api viewer gleich... :mauer: wieso geht der scheiss denn nicht.

ich kenne das mit mdi, aber da kann man die form nicht nach beliben gestalten und so weiter. da mache ich mir lieber die mühe, das ich mir schnell nen paar scrollbalken dran baue....
weil ich will keinen border um den ganzen scheoss haben und so weiter...

fabian ackle
09.06.2002, 14:08
hast du die funktionsdeklaration in einem externen modul? dort gehört sie nämlich hin & dann funktionierts auch ohne probleme

greetz

fabian

Steup
09.06.2002, 14:12
gut ok... dass geht jetzt, aber dennoch zeigt der die form nicht in der anderen form an... wieso nur...

bin ich denn zu blöd für vb????

Steup
09.06.2002, 14:14
geht doch habe nur show vergessen... :mauer: :mauer: :mauer:

Mimo
09.06.2002, 22:20
Die API-Deklaration darf schon in eine Form mit rein, nur darf diese Deklaration dann nicht public (was sie dafaultmaessig zu sein scheint, wenn nix davor steht) sein.

Mit dem Schluesselwort Private vor dem Declare... funzt es auch in der Form.

USSEraser
14.06.2002, 20:14
Ich hab sowas noch nie gebraucht, aber ich glaube sowas nennt sich MDI-Form. Such doch mal danach.

Der Assistent kann auch sowas erstellen. Schau dir den mal an.

Mimo
15.06.2002, 12:00
Original geschrieben von Mimo
...
3. Möglichkeit

Kennst Du die Möglichkeiten, die Du mit einer MDI-Form hast? Dort kannst Du "ChildForms" unterbringen und wenn diese den sichtbaren Bereich verlassen gibt's automatisch Bildlaufleisten. Du brauchst weiterhin keine APIs, sondern musst Deinem Projekt nur eine MDIForm hinzufügen.


:p :D ;)