void CArgumentsTableCtrl::OnLButtonDblClk(UINT nFlags, CPoint point) 
//void CArgumentsTableCtrl::OnLButtonDown(UINT nFlags, CPoint point) 
{
	int index;
	CListCtrl::OnLButtonDown(nFlags, point);

	int colnum;
	if((index = HitTestEx(point, &colnum)) != -1){
		UINT flag = LVIS_FOCUSED;
		if((GetItemState( index, flag ) & flag) == flag) {
			// Add check for LVS_EDITLABELS
			if(GetWindowLong(m_hWnd, GWL_STYLE) & LVS_EDITLABELS) {
				LV_DISPINFO dispinfo;
				dispinfo.hdr.hwndFrom = this->GetSafeHwnd();
				dispinfo.hdr.idFrom = GetDlgCtrlID();
				dispinfo.hdr.code = LVN_BEGINLABELEDIT;

				dispinfo.item.iItem = index;
				// Send message to the parent that we are ready to edit.
				SendMessage( WM_NOTIFY, GetDlgCtrlID(),(LPARAM)&dispinfo);

				EditSubLabel(index, colnum);
			}
		} else
			SetItemState(index, LVIS_SELECTED | LVIS_FOCUSED,LVIS_SELECTED | LVIS_FOCUSED); 
	}
}
Beispiel #2
0
INT_PTR CPlayerListCtrl::OnToolHitTest(CPoint point, TOOLINFO* pTI) const
{
    int col;
    int row = HitTestEx(point, &col);
    if (row == -1) {
        return -1;
    }

    CHeaderCtrl* pHeader = (CHeaderCtrl*)GetDlgItem(0);
    int nColumnCount = pHeader->GetItemCount();

    CRect rect;
    GetItemRect(row, &rect, LVIR_BOUNDS);

    for (int colnum = 0; colnum < nColumnCount; colnum++) {
        int colwidth = GetColumnWidth(colnum);

        if (colnum == col) {
            rect.right = rect.left + colwidth;
            break;
        }

        rect.left += colwidth;
    }

    pTI->hwnd = m_hWnd;
    pTI->uId = (UINT)((row << 10) + (col & 0x3ff) + 1);
    pTI->lpszText = LPSTR_TEXTCALLBACK;
    pTI->rect = rect;

    return pTI->uId;
}
Beispiel #3
0
void CComboListCtrl::OnLButtonDown(UINT iFlags, CPoint obPoint) 
{
	// TODO: Add your message handler code here and/or call default

	int iColumnIndex = -1;
	int iRowIndex = -1;

	// Get the current column and row
	if (!HitTestEx(obPoint, &iRowIndex, &iColumnIndex))
	{
		return;
	}

	CListCtrl::OnLButtonDown(iFlags, obPoint);
	
	// If column is not read only then
	// If the SHIFT or CTRL key is down call the base class
	// Check the high bit of GetKeyState to determine whether SHIFT or CTRL key is down
	if ((GetKeyState(VK_SHIFT) & 0x80) || (GetKeyState(VK_CONTROL) & 0x80))
	{
		return;
	}

	// Get the current selection before creating the in place combo box
	CString strCurSelection = GetItemText(iRowIndex, iColumnIndex);
	
	if (-1 != iRowIndex)
	{
		UINT flag = LVIS_FOCUSED;
		
		if ((GetItemState(iRowIndex, flag ) & flag) == flag)
		{
			// Add check for LVS_EDITLABELS
			if (GetWindowLong(m_hWnd, GWL_STYLE) & LVS_EDITLABELS)
			{
				// If combo box is supported
				// Create and show the in place combo box
				if (IsCombo(iColumnIndex))
				{
					CStringList obComboItemsList;
										
					GetParent()->SendMessage(WM_SET_ITEMS, (WPARAM)iColumnIndex, (LPARAM)&obComboItemsList);  
					
					CInPlaceCombo* pInPlaceComboBox = ShowInPlaceList(iRowIndex, iColumnIndex, obComboItemsList, strCurSelection);
					ASSERT(pInPlaceComboBox); 
					
					// Set the selection to previous selection
					pInPlaceComboBox->SelectString(-1, strCurSelection);
				}
				// If combo box is not read only
				// Create and show the in place edit control
				else if (!IsReadOnly(iColumnIndex))
				{
					CInPlaceEditCombo* pInPlaceEdit = ShowInPlaceEdit(iRowIndex, iColumnIndex, strCurSelection);
				}
			}
		}
	}  
}
	void FilterListCtrl::OnLButtonDblClk(UINT nFlags, CPoint point)
	{		
		int item, column;

		CListCtrl::OnLButtonDblClk(nFlags, point);
		item = HitTestEx(point, &column);
		if (item >= 0) {
			if (callback) callback->OnItemDblClk(item);
		}
	}
Beispiel #5
0
BOOL CListCtrlEditBase::OnOpen(CListCtrl *pCtrl, NMHDR *pNMHDR)
{
  int nItem, nSubItem;
  CListCtrlMap map;
  if (!HitTestEx(pCtrl, pNMHDR, nItem, nSubItem))
	  return FALSE;
  CWnd *pWnd = CListCtrlMap::GetSubWnd(pCtrl, nSubItem);
  if (pWnd == NULL) return FALSE;
  pWnd->PostMessage(WM_USER_SHOW_EDIT, nItem, nSubItem);
  return TRUE;
}
Beispiel #6
0
void 
CListCtrlEx::OnLButtonDown (UINT nFlags, CPoint Point)
{
    int Index;
    int ColNum;
    if ((Index = HitTestEx (Point, &ColNum)) != -1 && Index == GetSelectionMark()) {
		// This was a slow dbl click
	    CListCtrl::OnLButtonDown (nFlags, Point);
		EditSubItem (Index, ColNum);
    } else
	    CListCtrl::OnLButtonDown (nFlags, Point);
}
void CGraphicView::OnLButtonDown(UINT nFlags, CPoint point)
{
    // TODO: Add your message handler code here and/or call default

    int n=HitTestEx(point);
    if(n>=0)
        m_nFoucsIndext=n;
    else
        return;
    //int nstate=m_bLockBtn.GetCheck();
    if(m_bLockBtn.GetCheck()==BST_CHECKED)
        return;
    m_LbtDown=TRUE;
    SetCapture();

    CFormView::OnLButtonDown(nFlags, point);
}
Beispiel #8
0
void CPlayerListCtrl::OnLButtonDown(UINT nFlags, CPoint point)
{
	CListCtrl::OnLButtonDown(nFlags, point);

	if(GetFocus() != this) SetFocus();

	KillTimer(1);

	int m_nItemClickedNow, m_nSubItemClickedNow;

	if((m_nItemClickedNow = HitTestEx(point, &m_nSubItemClickedNow)) < 0)
	{
		m_nItemClicked = -1;
	}
	else if(m_nItemClicked == m_nItemClickedNow /*&& m_nSubItemClicked == m_nSubItemClickedNow*/)
	{
		m_nSubItemClicked = m_nSubItemClickedNow;

		LV_DISPINFO dispinfo;
		dispinfo.hdr.hwndFrom = m_hWnd;
		dispinfo.hdr.idFrom = GetDlgCtrlID();
		dispinfo.hdr.code = LVN_BEGINLABELEDIT;
		dispinfo.item.mask = 0;
		dispinfo.item.iItem = m_nItemClicked;
		dispinfo.item.iSubItem = m_nSubItemClicked;
		if(GetParent()->SendMessage(WM_NOTIFY, GetDlgCtrlID(), (LPARAM)&dispinfo))
		{
			if(m_tStartEditingDelay > 0)
			{
				SetTimer(1, m_tStartEditingDelay, NULL);
			}
			else
			{
				dispinfo.hdr.code = LVN_DOLABELEDIT;
				GetParent()->SendMessage(WM_NOTIFY, GetDlgCtrlID(), (LPARAM)&dispinfo);
			}
		}
	}
	else
	{
		m_nItemClicked = m_nItemClickedNow;
		m_nSubItemClicked = m_nSubItemClickedNow;

		SetItemState(m_nItemClicked, LVIS_SELECTED|LVIS_FOCUSED, LVIS_SELECTED|LVIS_FOCUSED); 
	}
}
Beispiel #9
0
// **************************************************************************
// OnLButtonDown ()
//
// Description:
//	Left mouse button down event handler.
//
// Parameters:
//  UINT		nFlags		Flags.
//	CPoint		cPoint		Current location of mouse cursor.
//
// Returns:
//  void
// **************************************************************************
void CKListEditCtrl::OnLButtonDown (UINT nFlags, CPoint cPoint) 
	{
	int nIndex;	
	int nCol;

	// Perform default processing:
	CListCtrl::OnLButtonDown (nFlags, cPoint);	
	
	// Determine which item (i.e, row was hit):
	if ((nIndex = HitTestEx (cPoint, &nCol)) != -1)	
		{		
		// If the item column clicked on is editable, display an edit control:
		if (nCol > 1)		// Only last column is editable
			EditSubLabel (nIndex, nCol);		
		
		// otherwise select the item:
		else
			SetItemState (nIndex, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED); 	
		}	
	}
Beispiel #10
0
void CClickList::OnLButtonDblClk(UINT nFlags, CPoint point) 
{
	CListCtrl::OnLButtonDblClk(nFlags, point);

	int Col = 0, Row = HitTestEx(point, Col);

	CHeaderCtrl *pHeader = const_cast<CClickList *>(this)->GetHeaderCtrl();
	if (NULL == pHeader || Row < 0 || Col >= pHeader->GetItemCount())
		return;

	CRowInfo *RowInfo = reinterpret_cast<CRowInfo *>(GetItemData(Row));
	if (NULL != RowInfo)
		for (CEditableColList::iterator it = RowInfo->EditableColList.begin();
			it != RowInfo->EditableColList.end(); ++it)
				if (Col == it->ColNumber) {
					m_LastEditedRow = m_LastEditedCol = -1;
					ShowEditControl(Row, Col, it->DataType);
					return;
				}
}
void CVarListCtrl::OnLButtonDown(UINT nFlags, CPoint point) 
{
	int index;
	CListCtrl::OnLButtonDown(nFlags, point);

	int colnum;
	if( ( index = HitTestEx( point, &colnum )) != -1 )
	{		
		UINT flag = LVIS_FOCUSED;
		if( (GetItemState( index, flag ) & flag) == flag && colnum > 0)
		{
			// Add check for LVS_EDITLABELS
			if( GetWindowLong(m_hWnd, GWL_STYLE) & LVS_EDITLABELS )
				EditSubLabel( index, colnum );
		}
		else
		{
			SetItemState( index, LVIS_SELECTED | LVIS_FOCUSED ,
				    	LVIS_SELECTED | LVIS_FOCUSED); 
		}
	}
}