Cześć, nie wiem czemu tak jest. Mam sobie kontrolkę, która dziedziczy po CStatic. To zwykły "label" z przeźroczystym tłem i możliwością prostego zawijania tekstu.
I teraz chcę sprawdzić, czy mam zawijać tekst, czy nie. Jeśli tekst jest dłuższy niż szerokość kontrolki, to zawijaj go. Wszystko się dzieje w OnSetText:
CRect thisRect;
SIZE txtSize = {0};
GetWindowRect(&thisRect); //pobierz wymiary kontrolki
CFont * pOldFont = GetDC()->SelectObject(GetFont());
GetTextExtentPoint32(GetDC()->GetSafeHdc(), str, str.GetLength(), &txtSize);
GetDC()->SelectObject(pOldFont);
if(txtSize.cx > thisRect.Width())
{
}
Najpierw próbowałem normalnie:
GetTextExtentPoint32(GetDC()->GetSafeHdc(), str, str.GetLength(), &txtSize);
bez ustawiania żadnych fontów. Ale po przeczytaniu kilku postów, okazało się, że fonta trzeba ustawić. Niemniej jednak to nic nie dało. Wartości są takie same. Przykładowo szerokość mojej kontrolki to 150, GetTextExtentPoint32 zwraca mi 230, a ja widzę, że tekst się mieści w kontrolce i jest jeszcze zapas. Co tu jest nie tak?