Mam problem, chcę przyciąć tekst który zawiera ściężkę dostępu do pliku (np.: c:\kat1\kat2\kat3\namefile.ext) tak by zmieścił się w okienku (przycisku CEdit) krótszym od ww tekstu.
I nie chodzi tu by wydłużyć okienko, czy zastosować multilinie w properties (właściwościach okienka) - zawsze może znależć się dłuższy tekst. Więc robię tak:
void CFiles::OnPaint()
{
CPaintDC dc(this); // device context for painting
CRect MRect;
CSize MSize;
CString sNapis;
sNapis="c:\\kat1\\kat2\\kat3\\namefile.ext";
m_cEDIT_CUSTOM.GetRect(MRect); //m_cEDIT_CUSTOM = member variable do CEdit
MSize= dc.GetTextExtent(sNapis);
if (MRect.Width()<=MSize.cx)
{
while (MRect.Width()<=MSize.cx)
{
sNapis.Delete(2); //ucinam po "C:\" jeden znak do aż się zmieści w CEdit
MSize= dc.GetTextExtent(sNapis);
}
sNapis.Insert(2,"..."); //oraz wstawiam "..." by wyszło np: c:\...at3\namefile.ext
}
m_cEDIT_CUSTOM.SetWindowText(sNapis);
}
No ale ucina się zadużo - powstaje jeszcze trochę wolnego miejsca w okienku CEdit.
Jak to poprawić ?