CEdit - Grösse ändern



  • Hallo, ist es möglich die größe eine CEdit-Box während der Laufzeit zu ändern. Ich benutze dies Box als eingabefeld, und möchte das wenn der Benutzer mit der Maus auf den Rand fährt, er die Box vergrößern bzw. verkleinern kann. (Wie ne richtige Textbox in Word, Corel....)

    Weiss jemand wie das geht?



  • Style: WS_THICKFRAME
    Setzen mit: ModifyStyle (oder evtl. bei Create mitangeben)



  • Danke für den Tip. Leider bekomme ich wenn ich den Style so wähle ein Pot-Hässlichen Rahmen. Gibt es keine andere "schönere" Möglichkeit? bzw. wo müsste ich ansetzten um das ganze selber zu realisieren?



  • Wahrscheinlich dabei, WM_NCHITTEST zu überschreiben



  • Danke für den Tip. Ich behandle jetzt die Nachrichten WM_NCMOuseMove...

    Bei einem Fenster das ich erzeuge klappt das auch. (Mit WS_THICKFRAME).

    Wenn ich diesen Style aber ausschalte (wegen des dicken Rahmen) bekomme ich diese nachrichten nicht mehr!
    Gibt es da eine Abhilfe?



  • Hm, dann ist wohl die Breite des NonClient-Bereichs auf 0!
    Das muss man also erst über WM_NCCALCSIZE korrigieren, allerdings muss man dann auch den Rahmen selberzeichnen



  • Was meinst Du mit korrigieren? Wie läuft das überhaupt ab, mit diesem NonClient Bereich?



  • Eine Möglichkeit wäre auch noch das ganze Ab und Anschaltbar zu machen. z.B. durch einen Menüpunkt Größe veränderbar. Oder wie im Visual Studio einen Menüpunkt "Anpassen"...

    [ Dieser Beitrag wurde am 12.11.2002 um 15:06 Uhr von Nemesyzz editiert. ]



  • Was meinst Du mit korrigieren? Wie läuft das überhaupt ab, mit diesem NonClient Bereich?

    Schau Dir Deinen Monitor an! Das Plastik aussenrum ist der NonClient-Bereich, das Glas der Client-Bereich!
    Wenn der NonClient-Berich nun 0 ist, kann logischerweise keine MausMsg dort empfangen werden!



  • Danke für die "verständliche" Erklärung. Aber wie kann ich jetzt diesen Bereich definieren (wenn er auf 0 ist)?

    void CMyEditBox::OnNcCalcSize(BOOL bCalcValidRects, NCCALCSIZE_PARAMS* lpncsp)
    
    ?????
    
    CEdit::OnNcCalcSize(bCalcValidRects, lpncsp);
    


  • Kann mir den keiner helfen. Ich versteht nicht wie ich den NonClient-Bereich ändern bzw. anpassen kann.
    Laut MSDN gibt es da 3 Rechteckte. Bei dem Parameter der bei NCCALCSIZE übergeben wird ist aber nur ein Dreieck. Ich versteh das NICHT!!!

    😕 HILFE!!!!!!!! 😮


Anmelden zum Antworten