Editbox == BN_CLICKED?



  • Abend zusammen,

    habe folgendes Problem,
    ich würde gerne, sobald eine Editbox angeklickt wird, eine MessageBox erscheinen lassen. Ich habe ein wenig rumprobiert, aber hm,... nichts dabei rausgekommen.

    Und noch was, kann mir einer Erklären was lParam und wParam für Aufgaben haben?
    Ich dachte immer ich hätte das verstanden, aber nach einigen Test mit der Editbox.. hm...

    Ice



  • das kommt ganz darauf an, bei welcher Message - näheres dann jeweils in der MSDN-Library 😉



  • hm... eben drum, welche Message... man könnte der EditBox eine eigene CALLBACK geben und WM_LBUTTONDOWN abfangen, habe ich gemacht, problem nur, die MessageBox kommt erst, nachdem ich aus der Editbox wieder herausgeklickt habe,
    Andere Idee: in der EditCALLBACK die WM_SETFOCUS abfangen, problem nur, dass hier beim Starten bereits eine MessageBox kommt, da beim erstellen der Fokus ja auf der Editbox sitzt (?). Gibt es also irgendwelche konkreten Möglichkeiten das zu lösen?

    edit:

    Es gäbe noch eine andere Lösung, LBUTTONDOWN in der Parent CALLBACK abfangen und überprüfen, ob die Mausposition in der Position des Editfelds liegt, aber wie mache ich das?

    edit zum edit^^:

    Die Idee ist mies, weil das WM_LBUTTONDOWN nicht registiert wird wenn ich die Editbox anklicke, weil der Focus ja von dem Mainfenster auf die Editbox gewandert ist...

    ⚠ wie ihr seht bin ich überfragt... ⚠



  • vielleicht hilft dir EN_SETFOCUS. Falls du einen Dialog hast, musst du auf die Tabreihenfolge achten, um unerwünschte Nebeneffekte zu vermeiden.
    [msdn]EN_SETFOCUS[/msdn]



  • Ich danke vielmals :), nach langem suchen war deine Antwort die richtige!

    folgend habe ich das jetzt gemacht:

    //in der Callback des WinFensters
    case WM_COMMAND:
     switch(HIWORD(wParam))
     {
     case EN_SETFOCUS:
      if(lParam == (LPARAM)HandelZuMeinerEditbox)
      {
      //Hier kommen die Dinge rein, die passieren, sobald die Editbox angeklickt wird!
      }
      break;
     }
    //....
    

    Danke euch nochmals,

    MfG,

    Ice


Anmelden zum Antworten