MFC - Edit Control 3D Border deaktivieren



  • Hallo erst mal

    Und zwar habe ich ein kleines MFC Problem mit einem Edit Control. Nun würde ich gern bei diesem Edit control über den quellcode bei bestimmten zuständen diesen 3D Rahmen abschalten, so das es mit einem Readonly wie ein Static text aussieht.
    Ich habe schon in der Hilfe gesucht sowie hier in dem Forum, doch bis jetzt habe ich nix gefunden. Ich hoffe ihr könnt mir da helfen.

    mfg Max-de



  • Mach das Häkchen unter Eigenschaften->Formate->Rand weg.

    So einfach kann es sein. 😃



  • Das es so geht weiss ich, ich will aben den Rahm beim Edit Control nur bei einem bestimmten Ereignis während der Laufzeit weg haben, so das ich eine möglichkeit brauche das über code zu deaktivieren.



  • Ich hab jetzt keine Lust für dich in die MSDN zu gucken, also versuch doch mal folgendes:

    Pack 2 EditControls in deine Resource, eins wo das Häkchen gesetzt ist und eines wo nicht. Sonst änderst du NIX am Standard - vielleicht noch den Namen.
    Dann öffnest du die .rc Datei mit Notepad oder sowas und suchst den Unterschied zwischen den beiden. Das sollte irgendein Stil sein. Schon hast du was du suchst.
    Du kannst dein Suchergebnis ja zur Sicherheit nochmal nachschlagen und lesen, ob es wirklich das ist, was du suchst.

    Wenn du einen Automatismus nachbauen willst, musst du doch nur herausfinden, was er macht. Ist die Idee so abwegig? 😕



  • ModifyStyle(WS_BORDER,0);



  • Also erst mal danke für die Hilfe aber ich bin immer noch nicht weiter gekommen.
    Auf das in der rc Datei bin ich selber schon gekommen gewesen nur das hat mir nicht besondern viel gebracht, da dort einfach nur ein NOT WS_BORDER als createproperty steht.
    Auch das ModifyStyle hatte ich schon ausprobiert, konnte aber keine Reaktion feststellen egal was ich eingetragen haben, vielleicht mache ich auch was Grundlegend falsch.

    Im Code steht bei mir ....

    ((CEdit*) this->GetDlgItem(IDC_VORNAME))->ModifyStyle(WS_BORDER,0);

    @Shlo
    hast du das mal ausprobiert?? 😕

    Wieso ist die MSDN so grottig schlecht jede andere programmiersprache hat ne bessere doku 😞



  • static_cast<CEdit*>(GetDlgItem(IDC_EDIT1))->ModifyStyleEx(WS_EX_CLIENTEDGE,0,SWP_FRAMECHANGED);
    


  • Hab nochmal etwas gesucht und was gefunden:

    The following styles can be specified wherever a window style is required. After the control has been created, these styles cannot be modified, except as noted.

    WS_BORDER hat keine Anmerkung, wie es geändert werden kann, also kann es nicht geändert werden. 😞

    Aber ich hätte eine andere Ideen:
    Nimm 2 Edits und verstecke immer gerade das, das du nicht sehen willst.
    Oder erzeuge das eine Control mit Create und zerstöre es, wenn es anders aussehen soll und mach es wieder neu.

    Ja, die MSDN könnte besser sein. Meine strotzt nur so vor Deadlinks *heul*. Aber ich kopiere mir dann immer die Linkbezeichnung und finde so meistens doch das, was ich wollte oder sogar was besseres.
    Ausserdem ist ein Thema oft auf zig Unterabschnitte verteilt, die nicht zusammengehören und nichts voneinander wissen. Dahilft echt nur suchen, suchen, suchen. Irgendwann hast du halbwegs Übung.

    Vielleicht ist das alles ja auch nur so chaotisch, weil es zu viele Informationen sind...

    Nur Mut! 🙂



  • Shlo schrieb:

    static_cast<CEdit*> (GetDlgItem(IDC_EDIT1))->ModifyStyleEx(WS_EX_CLIENTEDGE,0,SWP_FRAMECHANGED);
    

    Danke Shlo genau das habe ich gesucht.


Anmelden zum Antworten