コード例 #1
0
int CReportCtrl::InsertItem(UINT nMask, int nItem, LPCTSTR lpItem, UINT nState, UINT nStateMask, int nImage, LPARAM lParam)
{
	EndEdit(TRUE);
	_UnsetSortedColumn();
	const int IDX = CListCtrl::InsertItem(nMask, nItem, lpItem, nState, nStateMask, nImage, lParam);
	if (IDX >= 0)
		_AllocItemMemory(IDX);
	return IDX;
}
コード例 #2
0
int CReportCtrl::InsertItem(int nIndex, LPCTSTR lpText)
{	
	EndEdit(TRUE);
	_UnsetSortedColumn();
	const int IDX = CListCtrl::InsertItem(nIndex, lpText);
	if (IDX >= 0)
		_AllocItemMemory(IDX);
	return IDX;
}
コード例 #3
0
int CReportCtrl::InsertItem(const LVITEM *pItem)
{
	EndEdit(TRUE);
	_UnsetSortedColumn();
	const int IDX = CListCtrl::InsertItem(pItem);
	if (IDX >= 0)
		_AllocItemMemory(IDX);
	return IDX;
}
コード例 #4
0
ファイル: Reportctrl.cpp プロジェクト: 340211173/hf-2011
int CReportCtrl::InsertItem(int nItem, LPCTSTR lpItem, int nImage)
{
	EndEdit(TRUE);
	_UnsetSortedColumn();

	const int	IDX = CListCtrl :: InsertItem(nItem, lpItem, nImage);
	if(IDX >= 0)
	{
		_AllocItemMemory(IDX);
	}

	return(IDX);
}
コード例 #5
0
ファイル: Reportctrl.cpp プロジェクト: 340211173/hf-2011
int CReportCtrl::MoveTo(int nItem, int nNewPosition)
{
	if(!_IsValidIndex(nItem))
	{
		return(-1);
	}

	EndEdit(TRUE);

	const int	ITEMS = CListCtrl :: GetItemCount();
	nNewPosition = max(0, nNewPosition);
	nNewPosition = min(ITEMS - 1, nNewPosition);

	if(nItem == nNewPosition)
	{
		return(nNewPosition);
	}

	_UnsetSortedColumn();

	// Backup all states and attributes
	const int			COLS = GetColumnCount();
	const DWORD			STATES = GetItemStates(nItem);
	const DWORD			DATA = CListCtrl :: GetItemData(nItem);
	CArray<int, int>	aImages;
	CStringArray		aTexts;
	aImages.SetSize(COLS);
	aTexts.SetSize(COLS);
	for(int i = 0; i < COLS; i++)
	{
		aImages[i] = GetItemImage(nItem, i);
		aTexts[i] = GetItemText(nItem, i);
	}

	// Delete the item
	CListCtrl :: DeleteItem(nItem);

	// Insert a new item to the new position
	const int	IDX = CListCtrl :: InsertItem(nNewPosition, _T(""));

	// Restore all states & attributes to the newly inserted item
	for(int j = 0; j < COLS; j++)
	{
		CListCtrl :: SetItemText(IDX, j, aTexts[j]);
		SetItemImage(IDX, j, aImages[j]);
	}

	CListCtrl :: SetItemData(IDX, DATA);
	SetItemStates(IDX, STATES);
	return(IDX);
}
コード例 #6
0
BOOL CReportCtrl::SetSortable(BOOL bSet)
{
	if (!HasColumnHeader())
		return FALSE;

	LONG lStyle = ::GetWindowLong(GetHeaderCtrl()->GetSafeHwnd(), GWL_STYLE);
	if (bSet)
	{
		lStyle |= HDS_BUTTONS;
	}
	else
	{
		lStyle &= ~HDS_BUTTONS;
		_UnsetSortedColumn();
	}
	::SetWindowLong(GetHeaderCtrl()->GetSafeHwnd(), GWL_STYLE, lStyle);
	CListCtrl::GetHeaderCtrl()->RedrawWindow();
	return TRUE;
}
コード例 #7
0
ファイル: Reportctrl.cpp プロジェクト: 340211173/hf-2011
BOOL CReportCtrl::SwapItems(int nItem1, int nItem2)
{
	EndEdit(TRUE);
	if(!_IsValidIndex(nItem1) || !_IsValidIndex(nItem2))
	{
		return(FALSE);
	}

	if(nItem1 == nItem2)
	{
		return(TRUE);
	}

	_UnsetSortedColumn();

	// record previous states first
	const DWORD STATES1 = GetItemStates(nItem1);
	const DWORD STATES2 = GetItemStates(nItem2);
	const DWORD DATA1 = CListCtrl :: GetItemData(nItem1);
	const DWORD DATA2 = CListCtrl :: GetItemData(nItem2);

	// swap item texts and images
	for(int i = 0; i < GetColumnCount(); i++)
	{
		CString str = GetItemText(nItem1, i);
		CListCtrl :: SetItemText(nItem1, i, GetItemText(nItem2, i));
		CListCtrl :: SetItemText(nItem2, i, str);

		UINT	nImg = GetItemImage(nItem1, i);
		SetItemImage(nItem1, i, GetItemImage(nItem2, i));
		SetItemImage(nItem2, i, nImg);
	}

	// swap item data
	CListCtrl :: SetItemData(nItem1, DATA2);
	CListCtrl :: SetItemData(nItem2, DATA1);

	// restore states
	SetItemStates(nItem1, STATES2);
	SetItemStates(nItem2, STATES1);

	return(TRUE);
}
コード例 #8
0
BOOL CReportCtrl::EndEdit(BOOL bCommit)
{
	if (!_IsEditVisible())
		return FALSE;

	CString str;
	m_pWndEdit->GetWindowText(str);
	BOOL bChanged = bCommit && str.Compare(GetItemText(m_ptEditting.x, m_ptEditting.y)) != 0;
	if (bChanged)
	{
		// update the list item
		CListCtrl::SetItemText(m_ptEditting.x, m_ptEditting.y, str);
		_UnsetSortedColumn();
		GetParent()->SendMessage(WM_EDIT_COMMITTED, (WPARAM)m_ptEditting.x, (LPARAM)m_ptEditting.y);
	}
	m_pWndEdit->ShowWindow(SW_HIDE);
	m_ptEditting.x = -1;
	m_ptEditting.y = -1;
	return bChanged;
}
コード例 #9
0
ファイル: ReportCtrlEx.cpp プロジェクト: jlouzao/Minerva
BOOL CReportCtrlEx::EndCombo(BOOL bCommit)
{
	//if (!_IsEditVisible())
	//	return FALSE;
	//if (m_pWndCombo->IsWindowVisible())
	//	return FALSE;

	CString str;
	m_pWndCombo->GetWindowText(str);
	BOOL bChanged = bCommit && str.Compare(GetItemText(m_ptEditting.x, m_ptEditting.y)) != 0;
	if (bChanged)
	{
		// update the list item
		CListCtrl::SetItemText(m_ptEditting.x, m_ptEditting.y, str);
		_UnsetSortedColumn();
		GetParent()->SendMessage(WM_EDIT_COMMITTED, (WPARAM)m_ptEditting.x, (LPARAM)m_ptEditting.y);

		// Si el Tipo no es Alquiler se elimina lo que tuviera Tip de Alquiler
		if (m_ptEditting.y == 3)
		{
			if (str == ALQUILER)
			{
				CString strTipoAlquiler = GetItemText(m_ptEditting.x, 4);
				if (strTipoAlquiler.IsEmpty())
					SetItemTextCB(m_ptEditting.x, 4, MENSUAL);
			}
			else if (str != ALQUILER)
				SetItemTextCB(m_ptEditting.x, 4, "");
		}
	}

	m_pWndCombo->ShowWindow(SW_HIDE);

	m_ptEditting.x = -1;
	m_ptEditting.y = -1;

	return bChanged;
}
コード例 #10
0
ファイル: Reportctrl.cpp プロジェクト: 340211173/hf-2011
int CReportCtrl::InsertItemEx(int nItem, LPCTSTR lpText, ...)
{
	EndEdit(TRUE);
	_UnsetSortedColumn();

	const int	IDX = CListCtrl :: InsertItem(nItem, lpText);
	if(IDX < 0)
	{
		return(-1);
	}

	va_list list;
	va_start(list, lpText);

	for(int iColumn = 1; iColumn < GetColumnCount(); iColumn++)
	{
		LPCTSTR lp = va_arg(list, LPCTSTR);
		if(lp != NULL)
		{
			CListCtrl :: SetItemText(IDX, iColumn, lp);
		}
		else
		{
			break;
		}
	}

	va_end(list);

	if(IDX >= 0)
	{
		_AllocItemMemory(IDX);
	}

	return(IDX);
}
コード例 #11
0
BOOL CReportCtrl::SetItemText(int nItem, int nSubItem, LPCTSTR lpText)
{
	EndEdit(TRUE);
	_UnsetSortedColumn();
	return CListCtrl::SetItemText(nItem, nSubItem, lpText);
}