einblenden/ausblenden/überblenden von fenstern in einem formular



  • ich weis nicht, ob die überschrift genau das trifft, was ich euch nun fragen will, aber ich fang einfach an:
    also, für meinen gui wrapper wollte ich einen mechanismus implementieren, der es ermöglichen soll, vordefinierte layer mit ihren buttons checkboxen progressbars usw zu erstellen, und dann ganz einfach zwischen ihnen zu wechseln:

    //pseudocode,namen müssen keinen sinn ergeben,sollten es aber
    Form* formular=createForm();//formular erstellen
    LayerManager* manager=formular->createLayerManager(0,0,200,200);//layermanager für den bereich 0/0 200/200 erstellen
    
    //3 layer erstellen
    Layer* layer1=manager->createLayer(); 
    Layer* layer2=manager->createLayer();
    Layer* layer3=manager->createLayer();
    
    //für jeden layer ein design festlegen
    layer1->createButton(50,50,"hallo");
    layer1->createProgressBar(30,30,150,30);
    
    layer2->createButton(50,50,"nochmal hallo");
    
    layer3->createDirectXwindow(0,0,200,200);//naja platzhalter halt^^
    
    manager->display(layer1);//layer1 anzeigen
    Sleep(1000);
    manager->display(layer2);//layer2 anzeigen
    Sleep(1000);
    manager->display(layer3);//layer3 anzeigen
    
    ps: mir viel kein andrer name für layer ein^^
    

    geplant habe ichs, dass der layermanager ein einzelnes fenster ist, und die einzelnen layer jeweils childfenster, die sich den gleichen platz teilen, das problem ist nun wie ich immer nur eins sichtbar machen lasse, ok das ginge noch via Show window, aber reicht das auch aus, dass nur das jeweils sichtbare layer die nachrichten erhält? Oder muss ich erst alle andren fenster noch zusätzlich diablen? oder muss man was ganz andres machen? naja ich hab ka^^

    gibts da vielleicht schon einen bereits in der winapi existierenden mechanismus der sowas machen kann?



  • Also prinzipiell sollte es eigentlich genügen die anderen Fenster einfach zu verstecken.
    Aber das was du suchst sind glaub' Property Sheets 🙂



  • danke für den link,aber das is nicht ganz das was ich suche :),ich werds dann mal mit verstecken ausprobieren 🙂


Log in to reply