TAB an fremdes Formular senden



  • Hallo Leute,

    ich habe mir gerade in der FAQ folgenden Beitrag durchgelesen Texte an andere Programme senden

    Der Quelltext von WebFritzi hat mir bezüglich Texte an Applikationen versenden sehr weitergeholfen. Aber was noch nicht ganz klappt ist, mit VK_TAB zum nächsten Control zu gelangen. Ich habe schon sehr viel Varianten durchprobiert, aber keine davon klappt.

    z.B.

    SendMessage(hwndControl1, WM_SETTEXT, 0, (LPARAM)(LPCTSTR)"	");
    

    Weiterhin habe ich es auch mit der Meldung WM_SETFOCUS und auch der Konstante VK_TAB und anderen versucht, aber nicht funktioniert.

    Gruß Skay

    [ Dieser Beitrag wurde am 12.05.2003 um 08:38 Uhr von Skay editiert. ]



  • Der Dialog verarbeitet den TAB nicht das (Kind-)Steuerelement



  • @Hinweis

    Es muss aber eine Möglichkeit geben, wie man so etwas realisieren kann, da ich einige Programme kenne, die dies tun ...

    Gruß Skay



  • Du kannst doch einfach jedes Fenster (Child) einzeln rannehmen, also von jedem einzelnen das Windowhandle herausbekommen und dann damit machen was du willst...

    ciao
    😃



  • Aber ich brauch die Childs doch in der richtigen TAB Reihenfolge !



  • Wie wär's dann mit dem hier? An die Dialogbox senden 🙂
    WM_NEXTDLGCTL
    The WM_NEXTDLGCTL message is sent to a dialog box procedure to set the keyboard focus to a different control in the dialog box.

    WM_NEXTDLGCTL
    wCtlFocus = wParam; // identifies control for focus
    fHandle = (BOOL) LOWORD(lParam); // wParam handle flag

    Parameters

    wCtlFocus
    Value of wParam. If the fHandle parameter is TRUE, the wCtlFocus parameter identifies the control that receives the focus. If fHandle is FALSE, wCtlFocus is a flag that indicates whether the next or previous control with the WS_TABSTOP style receives the focus. If wCtlFocus is zero, the next control receives the focus; otherwise, the previous control with the WS_TABSTOP style receives the focus.

    fHandle
    Value of lParam. Contains a flag that indicates how Windows uses the wCtlFocus parameter. If the fHandle parameter is TRUE, wCtlFocus is a handle associated with the control that receives the focus; otherwise, wCtlFocus is a flag that indicates whether the next or previous control with the WS_TABSTOP style receives the focus.



  • Hat leider aus irgendwelchen Gründen nicht funktioniert.



  • Hallo.
    Bestimmt könnte man dir besser helfen, wenn du etwas mehr Informationen preis gibst.
    - Welche Dialogbox willst du ausfüllen? Welches Programm?
    - Wie hast du die Nachricht verschickt? Welche Parameter hast du angegeben?
    - Ist das Fenster auch wirklich eine Dialogbox?
    - Hast du das richtige Fensterhandle?
    - Wieso brauchst du unbedingt die Tabreihenfolge?

    Die Explorer "Ausführen"-Box läßt sich problemlos ansteuern, während ein Explorerfenster die Nachricht kalt läßt, weil es keine Dialogbox ist.

    Für Dialogboxen gibt es noch folgende Funktionen:
    - GetNextDlgTabItem()
    - GetNextDlgGroupItem()
    - GetDlgItem()

    Für Fenster:
    - GetNextWindow() damit kannst du dir mit der Überprüfung auf WS_TABSTOP die gleiche Funktionalität basteln

    ...gute Nacht 🙂



  • @<Hinweis>

    Vielen Dank für deine Hilfe, ich habe es mittlerweile geschafft. Es war nur ein kleiner Fehler meinerseits, da ich die TAB Message an das Control und nicht an das Fenster gesendet habe.

    SendMessage(hwndWindow, WM_NEXTDLGCTL, 0, 0);
    

    Nochmals vielen Dank ...

    Gruß Skay


Anmelden zum Antworten