Dialog Schließen
-
Hallo.
Ich habe 2 Dialoge übereinander. Der oberste Dialog wird vom untersten Aufgerufen. Der oberste Dialog besteht aus ein paar Button und ist genau so breit, wie die Button.
Jetzt möchte ich den obersten Dialog schließen, wenn außerhlb des oberen Dialoges mit der Maus geklickt wird schließen.Wie kann ich sowas realisieren?
Der oberste Dialog verliert dabei nicht den Fokus, von meinem Laptop höre ich dai nur ein ping.Hoffe das mir jemand helfen kann.
Oli
-
hy ,
man kann von jedem fenster sowas wie CClientDC(alles ausser titelleiste) holen und dann gucken ,ob sich der Mausklick innerhalb des fensters war.
Mittels Klassen Assitent (fürs obere fenster )sowas wie
OnLButtonDown(UINT nFlags, CPoint point)
{
// hier point auswerten
}
anlegen lassen.. und die variable point dann auswerten
-
Leider komme ich dabei nicht in die Nachricht von LButtonDown.
Das ist ja mein Problem. Ich klicke dabei ja auf den unteren Dialog.
Muß ich eventuell bei den Einstellungen des Dialoges etwas ändern?Oli
-
Die OnLButtonDown wird nur ausgewertet wenn der 'Klick' innerhalb des Dialoges stattgefunden hat, nicht Außerhalb !
Vielleicht sollte man Hooks verwenden :http://www.codeproject.com/csharp/globalhook.asp
http://www.codeproject.com/dll/ParkMouse.asp
http://www.codeproject.com/dll/hooks.asp
http://www.codeproject.com/dll/trackuseridle.aspHoffe das hilft dir weiter !
Gruß
:: NoName ::
-
hy ,
dann versuch es doch anders ..
dann fange doch
OnLButtonDown(UINT nFlags, CPoint point)
{
// hier point auswerten
}
im unteren fenster ab und reagiere nur dann wenn
der focus im oberen fenster ist .. müsste doch auch gehen ..
-
Versuche es mit einem modless DLG
-
Würde ein Mauscapture nicht auch gehen?
-
Hallo.
@ wuTangl: Ich lande nicht bei der Funktion OnLButtonDown(UINT nFlags, CPoint point) des unteren Fensters.
@Unix-Tom: Ich arbeite mit einer dialogfeldbasierenden Anwendung. Hast Du ein Beispiel für ein modeless Dialog? Habe bis jetzt immer mit DoModal den dialog geöffent.
@estartu_de: Habe schon versucht auf alle möglichen Mausnachrichten zu reagieren. Immer ohne Erfolg. Kannst Du mir ein Beispiel geben, für Deinen Tipp "Mauscapture" ?
Oli
-
Ein Beispiel findest du in Scribble, wenn ich mich nicht irre.
Guck dir mal SetCapture und RelaeseCapture. Bei Malprogrammbeispielen findest du das.
Ein eigenes Beispiel hab ich nicht hier...
-
Findet man das auch im Netz?
-
Wenn du Scribble meinst, das ist bei der MSDN dabei - sollte auch in der Netzversion enthalten sein.