WM_GETTEXT funktioniert bei einem Afxwnd42u Control nicht?



  • Hio,

    ich versuche von einem Dialog den Text auszulesen (fremdes Fenster). Die Klasse des Dialogs (ist ein Button) ist "Afxwnd42u". Ich habe dafür das Programm Spy++ benutzt. Wenn ich dort das Finder Tool auf diesen Button ziehe, bekomme ich die Informationen, also Kasse und auch das was auf dem Button steht (die Information, die ich möchte). Nun habe ich folgendes probiert:

    char cBuffer[255];
    SendMessage(hWnd, WM_GETTEXT, (WPARAM)255,(LPARAM) cBuffer);
    

    dort wird aber nichts reingeschrieben. Bei den anderen Controls funktioniert doch ein WM_GETTEXT wieso nicht dort?
    Und Spy++ zeigt den Text ja auch an, also muss es irgendeinen Weg geben, wie man das auslesen kann :).

    Bin für jeden Tip dankbar

    Alex



  • So bin jetzt hier auch mal registriert 🙂

    Also ich hab mir das mal bei Spy++ genauer angeschaut, da kann man ja Messages "loggen". Und dort steht dann sowas, wenn ich diesen button logge:

    WM_GETTEXT (sent)
    (return) WM_GETTEXT cch Copied:9 lpszText: 0017E0A0 ('"')

    also er hat 9 Zeichen kopiert aber nix bekommen? In der Klammer müsste ja der Text stehen .... Komischerweise steht aber bei WM_GETTEXTLENGTH als returnwert eine 9 und genau so lange ist das Wort welches auf dem Button steht. Wieso zur Hölle funzt dann GETTEXT nicht ?!



  • Unicode?



  • hab den String jetzt über "GetWindowText" bekommen. Ging irgendwie 🙂
    Nun hab ich aber ein neues Problem, ich möchte einen Click auf demn Button simulieren. Dazu habe ich nun

    SendMessage(hWnd,BM_CLICK,0,0);
    

    wobei hWnd dieses AFXwnd42 Teil ist. Aber er will nicht klicken 🙂

    woran kann das denn liegen? gibts noch andere Varianten einen Klick zu simulieren?



  • habs jetzt mal so versucht:

    SendMessage(hWnd,WM_LBUTTONDOWN,0,0);
    SendMessage(hWnd,WM_LBUTTONUP,0,0);
    

    siehe da, es klappt... wieso funktioniert dann BM_CLICK nicht? Dachte das würde das gleiche machen ...



  • Also ich verwende BN_CLICK und es funktioniert.


Anmelden zum Antworten