Seite 1 von 1

Panel in freies Fenster umwandeln

Verfasst: 14.04.2009 20:00
von dibro
Hi an alle,
als Gelegenheitsprogrammierer habe ich mal wieder ein neues Problem.
Ich habe ein Fenster mit mehreren Panels. Davon kann man bekannterweise immer nur eines anzeigen. Wenn ich das Grafikpanel beobachten will, muss ich immer zwischen dem Eingabepanel und dem Grafikpanel hin- und herschalten.
Ich möchte nun das Grafikpanel durch Anfassen mit der Maus "befreien" und auf dem Schirm hin und herschieben, damit es neben den anderen dauernd sichtbar ist. (Die Panels sind etwa 500x1000 px groß, so dass mehrere auf den Schirm passen.
Geht das und wie fange ich das an?
Für Eure Tipps bedanke ich mich schon mal im Voraus.

Verfasst: 15.04.2009 00:28
von KeyKon
Du könntest das Grafikpanel einfach als ChildWindow erstellen...
Um im gleichen Fenster sowas verschiebbar zu machen müsstest du das SplitterGadget nutzen, aber ich glaube das is nich das was du willst...
Evtl. geht das auch genauso wie du willst mit diversen API, das muss dir aber jemand anders sagen...

Verfasst: 15.04.2009 10:50
von mk-soft
Ein Gadget kann nicht zwei mal existieren. Vielleicht das Gadget verschieben und nach Abschluss zurück verschieben.

SetParend_(...)
The SetParent function changes the parent window of the specified child window.

HWND SetParent(

HWND hWndChild, // handle of window whose parent is changing
HWND hWndNewParent // handle of new parent window
);


Parameters

hWndChild

Identifies the child window.

hWndNewParent

Identifies the new parent window. If this parameter is NULL, the desktop window becomes the new parent window.



Return Values

If the function succeeds, the return value is the handle of the previous parent window.
If the function fails, the return value is NULL. To get extended error information, call GetLastError.

Remarks

An application can use the SetParent function to set the parent window of a pop-up, overlapped, or child window. The new parent window and the child window must belong to the same application.
If the window identified by the hWndChild parameter is visible, Windows performs the appropriate redrawing and repainting.
FF :wink:

Verfasst: 15.04.2009 16:14
von Andesdaf
Vielleicht ist ja das MDIGadget() was für dich. Dort kannst du, wie KeyKon
schon sagte, in einem Gadget mehrere Fenster öffnen und so wie normale
Fenster verschieben.

Verfasst: 16.04.2009 10:48
von dibro
Danke mal erst für die Hinweise.
Da muss ich mich erst mal drin vertiefen.
Werde vom (Miss)Erfolg berichten.
Bin derzeit in einem kleinen Urlaub, die Rückmeldung wird ein bisschen dauern.

Verfasst: 19.04.2009 14:18
von Andesdaf
...du könntest auch einfach das Grafikpanel daneben machen, siehe ImageGadget()