richedit ... schreibschutz und EN_PROTECTED(wird nicht gesendet, warum?), um bestimmte bereiche doch zu beschreiben



  • hi

    ich will bei einem richedit (he) verhindern, dass bestimmte breiche geändert werden

    dafür mache ich das richedit erstmal schreibgeschützt(odr weiß jmand ne bessere idee??)

    und will dann über die benachrichtigung EN_PROTECTED

    gucken, ob ich eine schreibaktion zulassen will oder nicht

    hier mal ein codeschnipsel

    EN_PROTECTED wird offenbar trotz eines eingabeversuchs per tastatur nicht gesendet ...

    SendMessage(he,EM_SETOPTIONS,ECOOP_OR,ECO_READONLY);//wir wollen später verhindern, dass man an der falschen Stelle editieren kann
         SendMessage(he,EM_SETEVENTMASK,0,ENM_PROTECTED);//damit änderuungsversuche eine Nachricht senden
    
    static NMHDR *mes;
    
    //in der CALLBACK funktion(ein teil!!)
    
    switch(message)
    {
      case WM_NOTIFY://kommt irgend wie nie
              MessageBox(NULL,TEXT("NOTIFY"),TEXT("TEST"),0);
              mes= static_cast<NMHDR*> (LongToPtr(lParam));
    
              switch(mes->code)
              {            
                case EN_PROTECTED://dann kann das natürlich auch nie kommen
                          MessageBox(NULL,TEXT("PROTECTED"),TEXT("TEST"),0);
                          return -1;//erstmal ist nix erlaubt!!
                default: break;
              }
    
              break;
      default: break;
    }
    

    weiß zufällig jemand rat?? ...

    danke + mfg

    error

    ps: wenn jemand eine andere funktionierende idee für eingeschränktes schreiben kennt, dann bitte sagen



  • ich will bei einem richedit (he) verhindern, dass bestimmte breiche geändert werden

    Frickler 🙄



  • ok, habs gefunden:

    mnn muss noch EM_SETCHARFORMAT mit CFE_PROTECTED setzen, dann klappts auch

    danke + mfg


Anmelden zum Antworten