Register sperren



  • Guten Morgen

    Ich habe ein SDI-Anwendung mit einem modalen Dialogfeld auf dem 3 Registerkarten zur Auswahl stehen.
    Ich habe beim Start des Programms Benutzerrechte vergeben. Da die Benutzerrechte auch Sinn machen, sollen Benutzer mit eingeschränkten Benutzerrechten nur eine von den 3 PropertyPages aufmachen können. Admins sollen alle aufmachen können. Is ja eigentlich egal. Mein Problem bzw. meine Frage ist wie ich die 2 Pages sperren kann oder in den Hintergrund setzen, oder völlig unsichtbar machen kann?? Gibt es da eine Möglichkeit?? 😕

    Habe schon mal in die MSDN geschaut. Aber leider nicht viel gescheites gefunden, außer "CPropertySheet::RemovePage".
    Wer ander Ideen oder Lösungsvorschläge hat mag sie mir vielleicht kundtun. Ich wär sehr dankbar. 👍

    MfG
    RunSeb



  • Bei einer dialogbasierten Anwendung werden die Registerkarten doch mit AddPage() hinzugefügt, z.B.

    AddPage(pDlg1);
    

    Da kann man doch einfach sagen

    if(Benutzerrecht == "OK")
    	AddPage(pDlg1);
    

    Dann werden nur die hinzugefügt, die der Benutzer sehen soll. Keine Ahnung, ob das bei SDI auch so geht...
    Eine andere aber nicht ganz so schöne Lösung ist, in OnSetActiv() von den folgenden Karteireitern die Benutzerrechte zu überprüfen. Sind sie nicht ausreichend, wird sofort wieder der erste Karteireiter aktiv gesetzt:

    ((CPropertySheet*)GetParent())->SetActivePage(0);
    


  • jo, ich denk mal die if-Abfrage bei ADD-Page wird wohl die beste Lösung sein!! 😉

    Dank dir auf jeden Fall für den Tipp! 👍

    Auch ne Möglichkeit wäre doch irgendwie im OnInitDialog() ein Flag zu setzen welcher Benutzer gerade eingeloggt ist ( gibt ja bei mir nur 2: Vollzugriff & eingeschränkt ) und dann unter Berufung auf den Zustand des Flags die komplette PropertyPage so zu verändern das z.B. bei "eingeschränkter Benutzerzugriff" Buttons immer gesperrt sind oder Eingabefelder Schreibgeschützt machen, etc.! Es ist dann nur verdammt viel Arbeit, weil fast alle Funktionen der Klassen betroffen sind. 🙄

    Gruß
    RunSeb 😋


Anmelden zum Antworten