Frage zu SendMessage



  • Habe ein Problem mit SendMessage:
    Hi,
    ich versuche mit folgendem Code in einem RichEdit (Form1 RichEdit1) an der Cursorposition einen Textblock einzufügen. Der C++ Builder akzeptiert zwar den Code, aber es passiert nichts.Wo liegt mein Fehler?

    HANDLE hWnd;
    hWnd = GetActiveWindow();

    DWORD dwLastPos;

    SendMessage(hWnd, EM_SETSEL, 0, -1);
    SendMessage(hWnd, EM_GETSEL, NULL, (LPARAM)&dwLastPos);
    SendMessage(hWnd, EM_SETSEL, dwLastPos, dwLastPos);

    // Text anhängen
    SendMessage(hWnd, EM_REPLACESEL, (WPARAM)FALSE, (LPARAM)"Text");

    Wär nett, wenn mir jemand ein Code - Beispiel geben könnte, bin relativ neu bei C++.



  • Probier das :

    [code]BOOL Edit_AddText(HWND hWnd, LPCTSTR lpText)
    {
       DWORD dwStart = 0, dwEnd = 0;
       int nLen;
    
       nLen = GetWindowTextLength(hWnd);
       SendMessage(hWnd, EM_GETSEL, (WPARAM)&dwStart, (LPARAM)&dwEnd);
       SendMessage(hWnd, EM_SETSEL, (WPARAM)nLen, (LPARAM)nLen);
       SendMessage(hWnd, EM_REPLACESEL, (WPARAM)FALSE, (LPARAM)lpText);
       SendMessage(hWnd, EM_SETSEL, (WPARAM)dwStart, (LPARAM)dwEnd);
    
       return(TRUE);
    }
    
    //bsp. Edit_AddText(hWndEdit,"Text")
    
    [/code]
    


  • Damit bekomme ich mehrere Fehlermeldungen.
    Kann ich den Code überhaupt in ein "ButtonClick" Ereignis schreiben?
    Sorry habe da noch viel zu lernen, aber ich lerne am Besten mit "learning by doing", so hab ich auch CNC und Roboterprogrammierung gelernt. 😕
    Bitte erklär mir das noch mal für Anfänger 😞



  • nan na die BOOL Function schreibst du am anfang deines scriptes is ne komplette funktion weis aber net ob du MFC verwendest muesste da aber auch funktionieren

    bei ButtonClick

    bsp.:

    [code]
    case WM_COMMAND:
      if (LOWORD(wParam) == IDOK) // Button ID
      {
         Edit_AddText(hWndEdit,"Text");// hWndEdit is dei Editfeld,text dei Text
         return TRUE;
      }
    break;[/code]
    


  • @Ascharan
    Ja ich weiß, Anfänger kosten Nerven. 🙂
    Um so erfreulicher ist' s, das du mir trotzdem meine Fragen beantwortest.
    Hat mir sehr weitergeholfen, danke! 👍



  • ok freut mich das ich weiterhelfen konnte da ich eine solche freage selbst scho gestellt habe 😃


Anmelden zum Antworten