/************************************************************************************** Function Name : SetHorizExtentListBox Input(s) : CListBox& omListBox Output : void Functionality : Sets the Listbox scroll to an extent so as to view the longest string that is inserted. Member of : CExploreMsgSg Author(s) : Robin G.K. Date Created : 27.10.2015 Requirement ID : RS_FLX_08_09_10 ***************************************************************************************/ void CExploreMsgSg::SetHorizExtentListBox(CListBox& omListBox) { // Set horizontal extent of the list // box to max string availaable // so that user can scroll CSize sz; CString omStrText; CDC* pDC = omListBox.GetDC(); if ( pDC != nullptr) { int nDx = 0; for (int nCount = 0; nCount < omListBox.GetCount(); nCount++) { omListBox.GetText( nCount, omStrText ); // remove space omStrText.TrimRight(); sz = pDC->GetTextExtent(omStrText); if (sz.cx > nDx) { nDx = sz.cx; } } omListBox.ReleaseDC(pDC); // Set the horizontal extent so every character of all // strings can be scrolled to. omListBox.SetHorizontalExtent(nDx); } }
void SetWidthByContentInListBox(CDialog* pDlg, int nID) { if (nID <= 0|| pDlg == NULL) return; CWnd* pWnd = (CWnd*)pDlg; CListBox* pCB = (CListBox*)pWnd->GetDlgItem(nID); if (pCB == NULL) return; int origSize = pCB->GetHorizontalExtent(); int maxSize = origSize; CDC* pDC = pWnd->GetDC(); CString cStr; int str_num = pCB->GetCount(); for (int i = 0; i < str_num; i++) { pCB->GetText(i, cStr); CSize strSize = pDC->GetOutputTextExtent(cStr); if (strSize.cx > maxSize) maxSize = strSize.cx; } // in case when adding to list, existing items may be // longer than newer ones, so may not want to resize if (maxSize > origSize) pCB->SetHorizontalExtent(maxSize); }
void COutputWnd::AdjustHorzScroll(CListBox& wndListBox) { CClientDC dc(this); CFont* pOldFont = dc.SelectObject(&afxGlobalData.fontRegular); int cxExtentMax = 0; for (int i = 0; i < wndListBox.GetCount(); i ++) { CString strItem; wndListBox.GetText(i, strItem); //cxExtentMax = max(cxExtentMax, dc.GetTextExtent(strItem).cx); // Just Ignore the min/max macro stuff if (cxExtentMax >= dc.GetTextExtent(strItem).cx) { cxExtentMax = cxExtentMax; } else { cxExtentMax = dc.GetTextExtent(strItem).cx; } } wndListBox.SetHorizontalExtent(cxExtentMax); dc.SelectObject(pOldFont); }
void RateDocking::AdjustHorzScroll(CListBox& wndListBox) { CClientDC dc(this); CFont* pOldFont = dc.SelectObject(&afxGlobalData.fontRegular); int cxExtentMax = 0; for (int i = 0; i < wndListBox.GetCount(); i ++) { CString strItem; wndListBox.GetText(i, strItem); cxExtentMax = max(cxExtentMax, (int)dc.GetTextExtent(strItem).cx); } wndListBox.SetHorizontalExtent(cxExtentMax); dc.SelectObject(pOldFont); }
void COutputWnd::AdjustHorzScroll(CListBox& wndListBox) { CClientDC dc(this); CFont* pOldFont = dc.SelectObject(&m_Font); int cxExtentMax = 0; for (int i = 0; i < wndListBox.GetCount(); i ++) { CString strItem; wndListBox.GetText(i, strItem); cxExtentMax = bk::max(cxExtentMax, (int)dc.GetTextExtent(strItem).cx); } wndListBox.SetHorizontalExtent(cxExtentMax); dc.SelectObject(pOldFont); }