DrawText(...)



  • Hallo !

    Folgendes, ich möchte aus einem Dialog String in View übergeben. String ist groß und hat Zeilenumbrüche, außerdem man kann im Dialog auch Größe, Style,Farbe etc. mit CFondDialog von Buchstaben ändern.
    Ich benutze in OnDraw(CDC *pDC) der View-Klasse
    pDC->DrawText(m_text,&m_rect,DT_WORDBREAK), woher soll ich wiesen wie groß ist m_rect sein soll?..

    Voraus Danke!

    Gibt's vielleicht andere Möglichkeit verschiedenen Text (So zB. Komentar oder Notiz) in CView reintun?



  • Das Rect ist für Clipping oder für Rückgabe des berechneten Rechtecks.
    Entweder gibst Du DT_CALCRECT an, dann ist egal, was in Rect steht, oder Du hast einen Bereich, innerhalb dessen nur Text ausgegeben werden soll-den mußt Du dann schon kennen.
    Falls Du DT_NOCLIP angibst, ist es glaub ich auch egal, was in Rect steht, dann schreibt er sowieso über diese Begrenzungen (ist aber schneller)



  • Ich hab's,

    CFont m_font;
    TEXTMETRIC tm; 
    
      m_font.CreateFontIndirect(&m_lf);
      pDC->SelectObject(m_font);
    
      pDC->SetTextColor(textColor);
     pDC->DrawText(m_text,rect,DT_CALCRECT);//es wird rect ausgerechnet,man kann's sogar rect(0,0,1,1) deklarieren,es wird automatisch auf richtige vergrößert!
     pDC->DrawText(m_text,rect,DT_WORDBREAK);//wird im rect gezeichnet
      pDC->GetTextMetrics(&tm);
      pDC->SelectStockObject(SYSTEM_FONT);
    

    Danke msdn.microsoft.com !!!!


Log in to reply