Größe eines CEdits festlegen



  • Hallo!

    Ich würde gern bei einem CEdit die Größe kleiner machen als wie der Res.Editor es zulässt (12pixel). Man kann zwar die Größe nachträglich mit MoveWindow anpassen, da es sich aber um mehrere Edits handelt ist das ein ziemlicher Aufwand. Nun würde ich gern direkt in meiner von CEdit abgeleiteten Klasse die Größe festlegen. Dazu fehlt mir aber der nötige Einsprungpunkt, sowas wie OnInitDialog(). Habt Ihr eine Idee?

    Viele Grüße,
    connan.



  • Hallo

    Kannst du das nicht direkt in der res-Datei manuell einstellen?

    chrische



  • Ist ne Idee, ich schau mal...



  • Funktioniert, vielen Dank!

    Gibts aber vieleicht doch eine Möglichkeit das aus der Klasse heraus zu machen?


  • Mod

    In einem Control hat das meines Erachtens nichts zu suchen. Ein Parent passt die Child Windows ein. Ein Child hat mit der eigenen Größe auszukommen.

    Ansonsten steht es Dir frei WM_GETMINMAXINFO zu behandeln. IMHO wird das an alle Fenster versendte und nicht nur an Top-Level Fenster.



  • Würde ich normalerweise auch so machen aber durch die Beschränkung auf 8pixel Höhe macht sich das nicht sehr gut. Jedesmal wenn man im Ressourceneditor so ein Element bewegt, wird es wieder auf 12 pixel zurück scaliert und die Parameter in der rc-datei zu finden ist auch nicht gerade eine Wonne 🙄

    Dank Dir für den Tip ich werds trotzt des Einwands mal so versuchen.

    btw.: Wieso bekommt man in einem Edit eigentlich keine 'normalen'-Windowsnachrichten? Hab noch keine gefunden die funktioniert hätte 😕 .



  • connan schrieb:

    btw.: Wieso bekommt man in einem Edit eigentlich keine 'normalen'-Windowsnachrichten? Hab noch keine gefunden die funktioniert hätte 😕 .

    Das gilt anscheinend auch für WM_GETMINMAXINFO, der Handler wird nie aufgerufen 😕



  • So, ich habe jetzt die richtige Stelle gefunden und zwar CWnd::PreSublassWindow, ist quasi die OnInitDialog für Controls.


  • Mod

    Das Control existiert bereits wenn Du einen Subcalss durchführst. Der Dialog Handler legt die Fenster an. Da hat die MFC noch gar nicht die Chance einzugreifen. Dann ist WM_GETMINMAXINFO schon längst durch. Aber die Nachricht wird bei jeden neuen Resize wieder versendet.



  • Danke Für die Info, das erklärt so einiges 😉


Anmelden zum Antworten