mfc fenster problem



  • hi ich hab ein problem und zwar hab ich ein Dialogfenster und in diesem öffne ich ein neues Modales fenster mit einer bestimmten größe.

    Das Problem ist jetzt wenn ich das Programm auf meinem Atom Laptop starte is dieses Fenster etwas kleiner und man sieht einige texte nimmer 😕
    weiß jmd woran das liegt?

    So setz ich die fenstergröße:

    this->SetWindowPos(&this->GetParent()->wndTop,0,0,410,240,SWP_NOMOVE);
    

  • Mod

    Dialoge werden in DLUs berechnet. Dialog Base Units! D.h. Du musst schon den entsprechenden Font berücksichtigen und die DLUs in Pixel umrechnen.

    Mal grundsätzlich: Warum veränderst Du überhaupt die Größe, wenn Du den Dialog exakt im Ressourcen Editor erzeugt hast?



  • jenachdem was ich für text im dialog ausgebe soll sich die größe verändern


  • Mod

    Und?

    In OnInitDialog, besorgst Du Dir den Font des Feldes in dem Du den Text anzeigst (GetFont). Dann verwendest Du DrawText mit DT_CALCRECT und ermittelst die notwendige Größe. Dann setzt Du die Kindfenstergröße und das Parentfenster errechnest Du eben mit CalcWindowRect...



  • das parentfenster hat ja die richtige größe ich muss nur im kindfenster die größe dem font anpassen oder?

    this->SetWindowPos(this->GetParent(),0,0,410,240,SWP_NOMOVE);
    

    eine frage sind die werte die ich per SetWindowPos setze in Pixel oder dbu?


  • Mod

    Pixel.


Anmelden zum Antworten