Client-Window
-
nee, des verhalten is nicht normal!
ich weiß mir aber nicht zu helfen, denn wenn ich des Fenster durch WM_COMMAND erzeugen lassen will, bringts mir nen Laufzeitfehler! So muß ich das Fenster bei WM_CREATE erzeugen (unsichtbar) und später sichtbar machen. Und der obige Code ist der einzige, der das bringt (leider).
-
Ich wollte jetzt antworten und dann doch nicht mehr!
Gruß! Unzi
-
weiß denn keiner was genaueres? ihr habt doch sicherlich scon mit clientwindows gearbeitet?!
-
Hat dein Edit noch weitere Childs, oder wie - kann mir das grad nicht so richtig vorstellen
Poste mal ein bisschen Code! Hat das mit WM_SIZE nicht geklappt?
-
Frei nach Murphies Gesetz musste mir das natürlich auch passieren
...
Gleiche Situation:
- ein Hauptfenster mit:
--- zwei Childs:
----- auf einem ein Edit
----- auf dem anderen ein weiteres ChildWenn ich nun das 'andere' Child (s.o.) erstelle, scheint das Edit durch, obwohl ich SetWindowPos mit HWND_TOPMOST (für das Child) nachgestellt habe. Neuzeichnen, updaten, BringWindowToTop, ... bringt alles nicht. Doch sobald ich die Maus wieder bewege, verschwindet das durchscheinende Edit hinter dem rechtmäßigen Vordergrund-Besitzer.
Warum?
M.T.
-
Weise dem Edit als Parent das erste Child zu (in CreateWindow).
-
... Das Parent für das Edit ist ein unabhängiges Fenster, da das Edit zu einem eigenen Steuerelement gehört ... geht also so nicht.
M.T.
-
Dann ist deine Problembeschreibung höchst mangelhaft!
-
Danke auch :p
Was fehlt dir denn an der Beschreibung?
M.T.
-
ich hab das Problem jetzt umgangen, indem ich das child zu einem weitetren Parent geacht hab! Bringt leider die deklaration von globalen Variabeln mit sich
-
Da muss es trotzdem einen besseren Weg geben.
Außerdem hab die Childs eher dafür, dass sie sich mit den Parents bewegen.Um die globalen Variablen zu umgehen, kannst du die Handles in den Fenster-Extra-Speicher packen (SetWindowLong(hWnd, NULL))
M.T.
-
Manuel schrieb:
Was fehlt dir denn an der Beschreibung?
Struktur
-
Hat sich erledigt.
Für alle, die das gleiche Problem haben - einfach ein AnimateWindow(hChild, 1, AW_SLIDE | AW_ACTIVATE) - funktioniert super.
M.T.
-
Manuel schrieb:
Für alle, die das gleiche Problem haben
*lol* Wir wissen ja noch nichtmal, was das für ein Problem war. Deine Beschreibung war dermaßen schlecht, und dein Statement auf meine erste Hilfestellung hin widersprach deiner ersten Beschreibung.
-
Noch mal:
Ein Hauptfenster. Darauf zum Ersten ein Child-Fenster (eigenes Control), welches im Programmverlauf ein Child-Fenster bekommt (ich nenn es mal Problemkind) (größer als sein Parent).
Als Zweites auf dem Hauptfenster befindet sich ein weiteres eigenes Control, welches als Child eine Edit-Box hat, welche beim Öffnen von Problemkind durchscheint.Einfacher lässt sich das Problem nicht beschreiben. Kann jetzt aber leider keine Screens hochladen, da's meinen Desktop mit FTP-Zugangsdaten erwischt hat.
M.T.
-
Ich bräuchte jetzt doch ne bessere Variante, als die mit AnimateWindow - kennt jemand eine?
Danke
M.T.
-
Du redest immer von "Child", aber es ist hier imminent (oder eminent?)wichtig, was das Parent ist. Du solltest also Formulierungen wie "Child von ..." verwenden!
-
Ach das meinst du - tschuldigung
Das Hauptfenster ist das große Parent. Die zwei eigenen Steuerelemente sind Childs des Hauptfensters. Jedes dieser beiden Steuerelemente hat noch ein weiteres Fenster als Child (hier) an sich. Und das zuerst erstellte von diesen beiden Childs (die hiers aus dem voherigen Satz) überdeckt das zuletzt erstellte, egal, wo man es per SetWindowPos in der ZOrder anordnet.
M.T.
-
Schau dir mal den Style WS_CLIPSIBLINGS an.
-
Danke, so funktioniert's.
Beim ersten Child hatte ich dran gedacht, doch bei der Edit-Box hab ich's dann vergessen
M.T.