kaldemor Geschrieben 6. März 2008 Geschrieben 6. März 2008 Hallo, wie kann man Höhe und Breite von einem Richedittext ermitteln? Hab mit dem Beispiel aus MSDN versucht -> Programmabsturz. // The pointer to my rich edit control. CRichEditCtrl* pmyRichEditCtrl; // A pointer to a printer DC. CDC* pMyPrinterDC; FORMATRANGE fr; // Get the page width and height from the printer. long lPageWidth = ::MulDiv(pMyPrinterDC->GetDeviceCaps(PHYSICALWIDTH), 1440, pMyPrinterDC->GetDeviceCaps(LOGPIXELSX)); long lPageHeight = ::MulDiv(pMyPrinterDC->GetDeviceCaps(PHYSICALHEIGHT), 1440, pMyPrinterDC->GetDeviceCaps(LOGPIXELSY)); CRect rcPage(0, 0, lPageWidth, lPageHeight); // Format the text and render it to the printer. fr.hdc = pMyPrinterDC->m_hDC; fr.hdcTarget = pMyPrinterDC->m_hDC; fr.rc = rcPage; fr.rcPage = rcPage; fr.chrg.cpMin = 0; fr.chrg.cpMax = -1; pmyRichEditCtrl->FormatRange(&fr, TRUE); // Update the display with the new formatting. RECT rcClient; pmyRichEditCtrl->GetClientRect(&rcClient); pmyRichEditCtrl->DisplayBand(&rcClient); Hat jemand eine andere Idee? Mfg, kaldemor Zitieren
Klotzkopp Geschrieben 6. März 2008 Geschrieben 6. März 2008 Hab mit dem Beispiel aus MSDN versucht -> Programmabsturz.Ohne mir das jetzt genauer angesehen zu haben: Solange du mit uninitialiserten Zeigern hantierst, darf dich das nicht wundern. Es wäre also gut, wenn pmyRichEditCtrl und pMyPrinterDC auch tatsächlich auf etwas zeigen würden, und nicht nur irgendwo in den Speicher. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.