Dialog + Child-Windows Nachrichtenproblem



  • Hallo,

    ich habe mit meinem Code folgendes Problem. Ich erstelle einen Dialog, der ein Tabcontrol enthält. Die einzelnen Tabs werden über CreateDialogParam mit dem Dialog-Handle als Parent erstellt. Diese Tabcontrols sind komplett von einem ListView Control bedeckt. Nun möchte ich zumindest irgendwo eine WM_LBUTTONUP Nachricht erhalten, wenn ich auf das ListView drücke. Ich erhalte die Nachricht nur in der Dialog Proc wenn beim Erstellen des Tabcontrols kein Fenster als Parent angegeben wird. Kann mir hier jemand einen Tipp geben wie ich das anstellen soll?



  • yogle schrieb:

    Hallo, ich habe mit meinem Code folgendes Problem.

    dann zeig doch mal ein bisschen ;>

    yogle schrieb:

    Ich erstelle einen Dialog, der ein Tabcontrol enthält. Die einzelnen Tabs werden über CreateDialogParam mit dem Dialog-Handle als Parent erstellt.

    Das glaube ich weniger. Gewöhnlich werden Controls mit CreateWindow(Ex) erstellt. Oder meinst du damit, dass du bereits das TabCtrl in deinem Dialog platziert hast und es bei der erstellung des Dialogs erstellt wird?

    warum möchtest du eine WM_LBUTTONUP message bekommen? ein paar mehr infos wären nicht schlecht...

    die entsprechenden Infos, die der nutzer braucht, sendet das ListView gewöhnlich selbst an das Parent Fenster.



  • Xantus schrieb:

    yogle schrieb:

    Ich erstelle einen Dialog, der ein Tabcontrol enthält. Die einzelnen Tabs werden über CreateDialogParam mit dem Dialog-Handle als Parent erstellt.

    Das glaube ich weniger. Gewöhnlich werden Controls mit CreateWindow(Ex) erstellt. Oder meinst du damit, dass du bereits das TabCtrl in deinem Dialog platziert hast und es bei der erstellung des Dialogs erstellt wird?

    Zweites. Da habe ich mich etwas doof ausgedrückt. Das TabCtrl ist bereits auf meinem Dialog platziert und wird bei der Erstellung des Dialoges gleich mit erstellt. Die einzelnen Tabs werden dann wie gesagt über CreateDialogParam "eingefügt".

    Xantus schrieb:

    warum möchtest du eine WM_LBUTTONUP message bekommen? ein paar mehr infos wären nicht schlecht...

    Ich möchte eine WM_LBUTTONUP Message erhalten um daraus das Item des ListCtrl auf das der User gedrückt hat heraus zu finden, um dann an der Cursorstelle ein Fenster zu öffnen.

    Xantus schrieb:

    die entsprechenden Infos, die der nutzer braucht, sendet das ListView gewöhnlich selbst an das Parent Fenster.

    Das ist es ja. Das Parent Fenster sollte doch mein (erster) Dialog sein!? Die Nachricht erhalte ich aber nur, wenn beim "Einfügen" der Tabitems in das TabCtrl _kein_ Parentfenster angegeben wird!?



  • und wie wärs, wenn du auf LVN_COLUMNCLICK oder LVN_ITEMACTIVE reagierst?

    zeig doch mal etwas code, vllt. hast du auch nur einen kleinen fehler bei der vergabe des parent-handles gemacht?

    PS.: CreateDialogParam ist immer noch eine Funktion, die einen nicht-modalen Dialog erzeigt. Du meinst wohl eher, dass du die Tabs in WM_INITDIALOG erstellst?



  • Xantus schrieb:

    und wie wärs, wenn du auf LVN_COLUMNCLICK oder LVN_ITEMACTIVE reagierst?

    Ja wäre vielleicht eine einfachere Lösung. Ich möchte wenn der User auf ein bestimmtes Subitem drückt (eigentlich auch nur auf das Bild darin) darauf reagieren können und benötige dazu auch die Koordinaten des Cursors beim Klick. Ob LVN_CLOUMNCLICK oder LVN_ITEMACTIVATE da funktionieren konnte ich jetzt noch nicht prüfen.

    Xantus schrieb:

    zeig doch mal etwas code, vllt. hast du auch nur einen kleinen fehler bei der vergabe des parent-handles gemacht?

    Wenn ich mehr Zeit habe vielleicht, heute Abend nicht mehr. Zwischen den Funktionen ist ein ganzer Haufen anderen Zeugs. Ich müsste das sozusagen erstmal zusammensuchen.

    Xantus schrieb:

    PS.: CreateDialogParam ist immer noch eine Funktion, die einen nicht-modalen Dialog erzeigt. Du meinst wohl eher, dass du die Tabs in WM_INITDIALOG erstellst?

    Mit CreateDialogParam, richtig.



  • yogle schrieb:

    Xantus schrieb:

    und wie wärs, wenn du auf LVN_COLUMNCLICK oder LVN_ITEMACTIVE reagierst?

    Ja wäre vielleicht eine einfachere Lösung. Ich möchte wenn der User auf ein bestimmtes Subitem drückt (eigentlich auch nur auf das Bild darin) darauf reagieren können und benötige dazu auch die Koordinaten des Cursors beim Klick. Ob LVN_CLOUMNCLICK oder LVN_ITEMACTIVATE da funktionieren konnte ich jetzt noch nicht prüfen.

    kriegst du mit GetCursorPos

    yogle schrieb:

    Xantus schrieb:

    PS.: CreateDialogParam ist immer noch eine Funktion, die einen nicht-modalen Dialog erzeigt. Du meinst wohl eher, dass du die Tabs in WM_INITDIALOG erstellst?

    Mit CreateDialogParam, richtig.

    na dann sind wir uns ja einig :p



  • Habe es jetzt hin bekommen. Und zwar erhalte ich eine schöne NM_CLICK Nachricht über WM_NOTIFY in meiner TabCtrl Proc, falls es jemanden interessieren sollte.
    Danke Xantus für die Tipps und Hinweise.


Anmelden zum Antworten