예제 #1
0
void CuEditableListCtrlGenericDerived::EditValue (int iItem, int iSubItem, CRect rcCell)
{
	DERIVEDLINEINFO* lData = (DERIVEDLINEINFO*)GetItemData(iItem);
	if (!lData)
		return;
	if (iSubItem != 1 || iSubItem == 3)
		return;
	switch (lData->iunittype)
	{
	case GEN_LINE_TYPE_BOOL:
		break;
	case GEN_LINE_TYPE_NUM :
		SetEditNumber (iItem, iSubItem, rcCell);
		break;
	case GEN_LINE_TYPE_SPIN:
		SetEditSpin (iItem, iSubItem, rcCell);
		break;
	case GEN_LINE_TYPE_STRING:
		SetEditText   (iItem, iSubItem, rcCell);
		break;
	default:
		SetEditText   (iItem, iSubItem, rcCell);
		break;
	}
}
예제 #2
0
void CuEditableListCtrlComponent::OnOpenCellEditor(UINT nFlags, CPoint point) 
{
	int   index, iColumnNumber;
	int   iItem   = -1, iSubItem = -1;
	int   iNumMin = 0;
	int   iNumMax = UD_MAXVAL;
	CRect rect, rCell;
	UINT  flags;
	
	index = HitTest (point, &flags);
	if (index < 0)
		return;
	GetItemRect (index, rect, LVIR_BOUNDS);
	if (!GetCellRect (rect, point, rCell, iColumnNumber))
		return;

	rCell.top    -= 2;
	rCell.bottom += 2;

	// Emb Sept 24, 97: modify for preliminary test at low level side
	CuCbfListViewItem* pItemData = (CuCbfListViewItem*)GetItemData(index);
	LPCOMPONENTINFO lpComponentInfo = &pItemData->m_componentInfo;
	BOOL bCanEditName  = VCBFllCanNameBeEdited(lpComponentInfo);
	BOOL bCanEditCount = VCBFllCanCountBeEdited(lpComponentInfo);

	HideProperty();
	switch (iColumnNumber)
	{
	case 1:
		if (bCanEditName)
			SetEditText (index, iColumnNumber, rCell);
		else
			MessageBeep(MB_ICONEXCLAMATION);
		break;
	case 2:
		if (bCanEditCount)
			SetEditSpin (index, iColumnNumber, rCell, iNumMin, iNumMax);
		else
			MessageBeep(MB_ICONEXCLAMATION);
		break;
	default:
		break;
	}
}