示例#1
0
/**************************************************************************************
    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);
    }
}
示例#2
0
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);
}
示例#3
0
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);
}
示例#4
0
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);	
}
示例#5
0
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);
}