/** * @file XTPGridRecordItem.h * * @copyright * (c) 1998-2025 Codejock Software, All Rights Reserved. * * This source file is the property of Codejock Software and must not be * redistributed by any means without the explicit written permission of * Codejock Software. * * The use of this source code is governed by the terms and conditions specified * in the Toolkit Pro license agreement. Codejock Software grants you, as a * single software developer, the limited right to use this software on one * computer only. * * Contact Information: * support@codejock.com * http://www.codejock.com * */ /** @cond */ #if !defined(__XTPGRIDRECORDITEM_H__) # define __XTPGRIDRECORDITEM_H__ /** @endcond */ # if _MSC_VER > 1000 # pragma once # endif // _MSC_VER > 1000 # include "Common/Base/Diagnostic/XTPDisableNoisyWarnings.h" class CXTPMarkupUIElement; class CXTPMarkupContext; class CXTPGridControl; class CXTPGridRow; class CXTPGridRecordItem; class CXTPGridHyperlink; class CXTPGridHyperlinks; class CXTPGridColumn; class CXTPGridPaintManager; class CXTPGridRecord; class CXTPGridInplaceButton; class CXTPPropExchange; class CXTPGridRecordItemConstraint; class CXTPGridRecordItemConstraints; class CXTPGridRecordItemControlHookWnd; class CXTPGridRecordItemControl; class CXTPGridRecordItemControls; class CXTPGridBorder; class CXTPGridGroupRow; /** * @brief * Basic set of parameters transferred to item handlers. This structure * groups together essential parameters used in item processing activities. * It is the parent for all other structures: * XTP_GRIDRECORDITEM_DRAWARGS, XTP_GRIDRECORDITEM_CLICKARGS, etc. * * Example: *
* XTP_GRIDRECORDITEM_ARGS itemArgs(pControl, pRow, pColumn); * pItem->OnBeginEdit(&itemArgs); ** @see * CXTPGridRecordItem::OnBeginEdit */ struct _XTP_EXT_CLASS XTP_GRIDRECORDITEM_ARGS { /** @cond */ /** * @brief * Constructs a XTP_GRIDRECORDITEM_ARGS object */ XTP_GRIDRECORDITEM_ARGS(); /** * @brief * Constructs a XTP_GRIDRECORDITEM_ARGS object * @param pControl Parent Grid control pointer * @param pRow Item's row pointer * @param pColumn Item's column pointer */ XTP_GRIDRECORDITEM_ARGS(CXTPGridControl* pControl, CXTPGridRow* pRow, CXTPGridColumn* pColumn); /** * @brief * Destroys a CXTPPropertyGrid object, handles cleanup and deallocation */ virtual ~XTP_GRIDRECORDITEM_ARGS(); void AddRef(); void Release(); const XTP_GRIDRECORDITEM_ARGS& operator=(const XTP_GRIDRECORDITEM_ARGS& src); /** @endcond */ CXTPGridControl* pControl; /**< Pointer to the main Grid control. */ CXTPGridRow* pRow; /**< Pointer to the associated row. */ CXTPGridColumn* pColumn; /**< Grid column at click position, if any, NULL otherwise. */ CXTPGridRecordItem* pItem; /**< Pointer to the associated item. */ CRect rcItem; /**< Item position in control client coordinates. */ }; /** * @brief * A set of parameters transferred to the Draw item handler. * It inherits essential parameters from XTP_GRIDRECORDITEM_ARGS. * @details * This structure is used in almost all functions concerning drawing activities. * * Example: *
* // fill structure * XTP_GRIDRECORDITEM_DRAWARGS drawArgs; * drawArgs.pDC = pDC; * drawArgs.pControl = m_pControl; * drawArgs.pRow = pRow; * // call function * pItem->Draw(&drawArgs); ** @see * CXTPGridPaintManager */ struct _XTP_EXT_CLASS XTP_GRIDRECORDITEM_DRAWARGS : public XTP_GRIDRECORDITEM_ARGS { /** @cond */ XTP_GRIDRECORDITEM_DRAWARGS() { nTextAlign = DT_LEFT; pDC = NULL; } /** @endcond */ CDC* pDC; /**< Pointer to control drawing context. */ int nTextAlign; /**< Text alignment mode (DT_LEFT || DT_RIGHT || DT_CENTER). */ }; /** * @brief * A set of parameters transferred to mouse click item handlers. * It inherits essential parameters from XTP_GRIDRECORDITEM_ARGS. * @details * XTP_GRIDRECORDITEM_CLICKARGS is used in most functions involved * in mouse event processing. * @see * CXTPGridControl, CXTPGridRecordItem::OnClick */ struct _XTP_EXT_CLASS XTP_GRIDRECORDITEM_CLICKARGS : public XTP_GRIDRECORDITEM_ARGS { CPoint ptClient; /**< Coordinates of the mouse click point. */ }; /** * @brief * This structure is sent to the Main window in a WM_NOTIFY message from * Item and provides all parameters required by the Main window to process * control specific notifications. * * Example: *
* BEGIN_MESSAGE_MAP(CPropertiesView, CView)
* ON_NOTIFY(XTP_NM_GRID_VALUECHANGED, ID_GRID_CONTROL, OnPropertyChanged)
* END_MESSAGE_MAP()
*
* void CPropertiesView::OnPropertyChanged(NMHDR* pNotifyStruct, LRESULT* result)
* {
* XTP_NM_GRIDRECORDITEM* pItemNotify = (XTP_NM_GRIDRECORDITEM*) pNotifyStruct;
*
* switch (pItemNotify->pItem->GetItemData())
* {
* // Some code.
* }
* }
*
* @see
* XTP_NM_GRIDINPLACEBUTTON
*/
struct XTP_NM_GRIDRECORDITEM
{
NMHDR hdr; /**< Standard structure; contains information about a notification message. */
CXTPGridRow* pRow; /**< Pointer to the row associated with the notification. */
CXTPGridRecordItem* pItem; /**< Pointer to the record item associated with the notification. */
CXTPGridColumn* pColumn; /**< Pointer to the column associated with the notification. */
int nHyperlink; /**< Index of clicked Hyperlink, if any, or -1 otherwise. */
POINT pt; /**< Point where the message ocurred. */
};
/**
* @brief
* A set of parameters transferred with an XTP_NM_GRID_REQUESTEDIT message.
* @details
* XTP_NM_GRIDREQUESTEDIT is used to cancel edit operations.
* @see
* XTP_NM_GRID_REQUESTEDIT
*/
struct XTP_NM_GRIDREQUESTEDIT : public XTP_NM_GRIDRECORDITEM
{
BOOL bCancel; /**< TRUE to cancel operation. */
};
# ifdef _XTP_ACTIVEX
/** @cond */
struct XTP_NM_GRIDVALUECHANGING : public XTP_NM_GRIDRECORDITEM
{
BOOL bCancel;
LPVARIANT lpNewValue;
};
/** @endcond */
# endif
/**
* @brief
* This structure is sent to the Main window in a WM_NOTIFY message from
* Item and provides all parameters required by the Main window to process
* control specific notifications.
* @details
* Use this structure to get the in-place button which produces the
* XTP_NM_GRID_INPLACEBUTTONDOWN message.
* @see
* XTP_NM_GRID_INPLACEBUTTONDOWN
*/
struct XTP_NM_GRIDINPLACEBUTTON : public XTP_NM_GRIDRECORDITEM
{
CXTPGridInplaceButton* pButton; /**< Pointer to in-place button. */
};
/**
* @brief
* This structure is sent to the Main window in a WM_NOTIFY message from
* Item and provides all parameters required by the Main window to process
* control specific notifications.
* @details
* It is sent before clipboard Copy/Paste operations.
* @see
* XTP_NM_GRID_BEFORE_COPY_TOTEXT, XTP_NM_GRID_BEFORE_PASTE_FROMTEXT,
* XTP_NM_GRID_BEFORE_PASTE, CXTPGridControl::OnBeforeCopyToText(),
* CXTPGridControl::OnBeforePasteFromText(),
* CXTPGridControl::OnBeforePaste().
*/
struct XTP_NM_GRID_BEFORE_COPYPASTE
{
NMHDR hdr; /**< Standard structure; contains information about a notification message. */
CXTPGridRecord** ppRecord; /**< [in/out] A pointer to a record pointer. */
CStringArray* parStrings; /**< [in/out] A pointer to a strings array with record items values.
*/
};
/**
* @brief
* This structure is sent to the Main window in a WM_NOTIFY message from
* Item and provides all parameters required by the Main window to process
* control specific notifications.
* @details
* Use this structure to notify about constraint changing.
* @see
* XTP_NM_GRIDCONSTRAINTSELECTING
*/
struct XTP_NM_GRIDCONSTRAINTSELECTING : public XTP_NM_GRIDRECORDITEM
{
CXTPGridRecordItemConstraint* pConstraint; /**< Pointer to the constraint associated with the */
/**
* notification.
*/
};
/**
* @brief
* This structure is sent to the Main window in a WM_NOTIFY message from
* Item and provides all parameters required by the Main window to process
* control specific notifications.
* @details
* Use this structure to notify about tooltip showing.
* @see
* XTP_NM_GRIDTOOLTIPTEXT
*/
struct XTP_NM_GRIDTOOLTIPINFO : public XTP_NM_GRIDRECORDITEM
{
CString* pstrText; /**< Pointer to a CString object with Tooltip text. */
};
/**
* @brief
* This enum defines the alignment style for the column icon and text.
*/
enum XTPGridColumnIconAlignment
{
xtpColumnTextLeft = DT_LEFT, /**< Aligns text to the left. */
xtpColumnTextCenter = DT_CENTER, /**< Centers text horizontally in the column. */
xtpColumnTextRight = DT_RIGHT, /**< Aligns text to the right. */
xtpColumnTextVCenter = DT_VCENTER, /**< Centers text vertically. */
xtpColumnTextWordBreak = DT_WORDBREAK, /**< Breaks words. Lines are automatically broken between
words if a word would extend past the edge of the
rectangle. A carriage return-line feed sequence
also breaks the line. */
xtpColumnTextMask = 0xFF, /**< A mask for text alignment styles.*/
xtpColumnIconLeft = 0x00100000, /**< Aligns icon to the left.*/
xtpColumnIconCenter = 0x00200000, /**< Centers icon horizontally in the column.*/
xtpColumnIconRight = 0x00400000, /**< Aligns icon to the right.*/
xtpColumnIconTop = 0x01000000, /**< Aligns icon to the top.*/
xtpColumnIconVCenter = 0x02000000, /**< Aligns icon to the center.*/
xtpColumnIconBottom = 0x04000000, /**< Aligns icon to the bottom.*/
xtpColumnIconMask = 0x0FF00000 /**< A mask for icon alignment styles. */
};
/**
* @brief
* This enum defines alignment style for the group row custom icon.
* @see
* XTP_GRIDRECORDITEM_METRICS::nGroupRowIconAlignment
*/
enum XTPGridGroupRowIconAlignment
{
xtpGroupRowIconUnknown = 0, /**< Unknown (empty) value. */
xtpGroupRowIconLeft = 0x001, /**< Draw icon at the left side of group row rect. */
xtpGroupRowIconBeforeText = 0x002, /**< Draw icon before caption text (between Expand/Collapse
icon and text). */
xtpGroupRowIconAfterText = 0x004, /**< Draw icon after caption text.*/
xtpGroupRowIconRight = 0x008, /**< Draw icon at the right side of group row rect.*/
xtpGroupRowIconHmask = 0x00F, /**< A mask for horizontal alignment flags.*/
xtpGroupRowIconVTop = 0x100, /**< Vertical alignment: top of group row rect.*/
xtpGroupRowIconVCenter = 0x200, /**< Vertical alignment: center of group row rect.*/
xtpGroupRowIconVCenterToText = 0x400, /**< Vertical alignment: center of caption text rect.*/
xtpGroupRowIconVBottom = 0x800, /**< Vertical alignment: bottom of group row rect.*/
xtpGroupRowIconVmask = 0xF00, /**< A mask for vertical alignment flags.*/
};
/**
* @brief
* This enum defines flags for virtual row metrics.
* @see
* XTP_GRIDRECORDITEM_METRICS::nVirtRowFlags
*/
enum XTPGridVirtualRowFlags
{
xtpVirtRowUnknown = 0, /**< Unknown (empty) value.*/
xtpVirtRowHasChildren = 0x001, /**< A row has children.*/
xtpVirtRowLastChild = 0x002 /**< A row is the last child of its parent.*/
};
/**
* @brief
* Record item drawing metrics.
* Its helper structures group together parameters to store general
* drawing metrics.
*/
struct XTP_GRIDRECORDITEM_METRICS : public CXTPCmdTarget
{
CFont* pFont; /**< Drawing font. */
COLORREF clrForeground; /**< Item foreground color. */
COLORREF clrBackground; /**< Item background color. */
CString strText; /**< Item text. */
int nGroupRowIcon; /**< Group row icon ID. See CXTPGridControl::GetImageManager(). */
int nGroupRowIconAlignment; /**< Group row icon alignment. See XTPEnumGroupRowIconAlignment. */
int nColumnAlignment; /**< Column alignment. See XTPGridColumnIconAlignment. */
int nItemIcon; /**< Item icon ID. See CXTPGridControl::GetImageManager(). */
int nVirtRowLevel; /**< Virtual row level. */
int nVirtRowFlags; /**< Virtual row flags. */
# ifdef _XTP_ACTIVEX
/** @cond */
CXTPFont m_xtpFontMetrics;
XTP_SUBSTITUTE_GDI_MEMBER_WITH_CACHED(CFont, m_fntMetrics, m_xtpFontMetrics,
GetMetricsFontHandle);
/** @endcond */
# endif
/** @cond */
/**
* @brief
* Constructs a XTP_GRIDRECORDITEM_METRICS struct
*/
XTP_GRIDRECORDITEM_METRICS()
{
Reset();
# ifdef _XTP_ACTIVEX
EnableAutomation();
# endif
}
void Reset()
{
pFont = NULL;
clrForeground = XTP_GRID_COLOR_DEFAULT;
clrBackground = XTP_GRID_COLOR_DEFAULT;
nGroupRowIcon = XTP_GRID_NOICON;
nGroupRowIconAlignment = xtpGroupRowIconRight | xtpGroupRowIconVCenter;
nColumnAlignment = xtpColumnTextLeft;
nItemIcon = XTP_GRID_NOICON;
nVirtRowLevel = 0;
nVirtRowFlags = 0;
}
/** @endcond */
# ifdef _XTP_ACTIVEX
/** @cond */
~XTP_GRIDRECORDITEM_METRICS()
{
}
DECLARE_DISPATCH_MAP()
DECLARE_INTERFACE_MAP()
LPFONTDISP OleGetFont();
void OleSetFont(LPFONTDISP pFontDisp);
/** @endcond */
# endif
};
/**
* @brief
* This class represents a collection of in-place buttons
* for a single item of the Grid control.
*/
class _XTP_EXT_CLASS CXTPGridInplaceButtons
: public CArray* // fill structure * XTP_GRIDRECORDITEM_DRAWARGS drawArgs; * drawArgs.pDC = pDC; * drawArgs.pControl = m_pControl; * drawArgs.pRow = this; * // call function * Draw(&drawArgs); ** * @see * XTP_GRIDRECORDITEM_DRAWARGS */ virtual int Draw(XTP_GRIDRECORDITEM_DRAWARGS* pDrawArgs); /** * @brief * Should be overridden by descendants for drawing itself. * @param pDrawArgs Pointer to an XTP_GRIDRECORDITEM_DRAWARGS * structure containing drawing arguments. * @param pMetrics Pointer to an XTP_GRIDRECORDITEM_METRICS * structure containing item metrics. */ virtual void OnDrawCaption(XTP_GRIDRECORDITEM_DRAWARGS* pDrawArgs, XTP_GRIDRECORDITEM_METRICS* pMetrics); /** * @brief * Should be overridden by descendants for drawing itself. * @param pDrawArgs Pointer to an XTP_GRIDRECORDITEM_DRAWARGS * structure containing drawing arguments. * @param rcItem Reference to an item rectangle. */ virtual void OnDrawControls(XTP_GRIDRECORDITEM_DRAWARGS* pDrawArgs, CRect& rcItem); /** * @brief * Determines which grid record item control, if any, is at a specified point. * @param ptPoint Point to test. * @details * Call this member function to test the item contents at the * specified point. * @return * A pointer to the grid record item control at the specified point, if any, * otherwise NULL. */ CXTPGridRecordItemControl* HitTest(CPoint ptPoint); /** * @brief * Determines if a mouse click occurred on a hyperlink. * @param ptClick Point of the mouse click. * @return * Zero-based index of the clicked link, if any, otherwise a value of -1. */ virtual int HitTestHyperlink(CPoint ptClick); /** * @brief * Processes mouse left button down clicks. * @param pClickArgs Pointer to an XTP_GRIDRECORDITEM_CLICKARGS * structure containing click arguments. * @return * TRUE if the implementation handles the mouse click event and no * further handling is required, otherwise FALSE. * @details * Usually this function is called by GridRow's OnLButtonDown function. * @see * XTP_GRIDRECORDITEM_CLICKARGS */ virtual BOOL OnLButtonDown(XTP_GRIDRECORDITEM_CLICKARGS* pClickArgs); /** * @brief * Processes mouse left button up clicks. * @param pClickArgs Pointer to an XTP_GRIDRECORDITEM_CLICKARGS * structure containing click arguments. * @return * TRUE if the implementation handles the mouse click event and no * further handling is required, otherwise FALSE. * @details * Usually this function is called by GridRow's OnLButtonUp function. * @see * XTP_GRIDRECORDITEM_CLICKARGS */ virtual BOOL OnLButtonUp(XTP_GRIDRECORDITEM_CLICKARGS* pClickArgs); /** * @brief * Processes single mouse clicks. * @param pClickArgs Pointer to an XTP_GRIDRECORDITEM_CLICKARGS * structure containing click arguments. * @details * Usually this function is called by GridRow's OnClick function. * @see * XTP_GRIDRECORDITEM_CLICKARGS */ virtual void OnClick(XTP_GRIDRECORDITEM_CLICKARGS* pClickArgs); /** * @brief * Processes double mouse clicks. * @param pClickArgs Pointer to an XTP_GRIDRECORDITEM_CLICKARGS * structure containing click arguments. * @details * Usually this function is called by GridRow's OnDblClick function. * @see * XTP_GRIDRECORDITEM_CLICKARGS */ virtual void OnDblClick(XTP_GRIDRECORDITEM_CLICKARGS* pClickArgs); /** * @brief * Processes the move mouse event. * @param point Specifies the x- and y- coordinates of the cursor. * @param nFlags Additional flags. * @param pControl Pointer to the Grid control. * @details * Usually this function is called by GridRow's OnMouseMove function. */ virtual void OnMouseMove(UINT nFlags, CPoint point, CXTPGridControl* pControl = NULL); /** * @brief * Gets the text caption of the item. * @details * Can be overridden by descendants. * @return * The text caption of the item, or an empty string for a base record item class. */ virtual CString GetCaption(); /** * @brief * Gets the caption prefix of a specified column. * @param pColumn Pointer to a CXTPGridColumn object. * @return * The caption prefix of the specified column. */ CString GetColumnCaptionPrefix(CXTPGridColumn* pColumn) const; /** * @brief * Retrieves the text caption of the record item. * @param pColumn Pointer to the corresponding column of the record item. * @details * Can be overridden by descendants. * @return * The text caption of the record item, * or an empty string for a base record item class. */ virtual CString GetCaption(CXTPGridColumn* pColumn); /** * @brief * Retrieves the caption text bounding rectangle. * @param pDrawArgs Pointer to an XTP_GRIDRECORDITEM_DRAWARGS * structure containing drawing arguments. * @param rcItem Reference to a CRect object that receives * the caption text bounding rectangle. */ virtual void GetCaptionRect(XTP_GRIDRECORDITEM_ARGS* pDrawArgs, CRect& rcItem); /** * @brief * Gets the group caption text. * @param pColumn Pointer to a CXTPGridColumn object. * @return * The group caption text. */ virtual CString GetGroupCaption(CXTPGridColumn* pColumn); /** * @brief * Gets the group caption native value. * @param pColumn Pointer to a CXTPGridColumn object. * @return * The group caption native value. */ virtual COleVariant GetGroupCaptionValue(CXTPGridColumn* pColumn); /** * @brief * Gets the group caption ID. * @param pColumn Pointer to a CXTPGridColumn object. * @return * The group caption ID. */ virtual int GetGroupCaptionID(CXTPGridColumn* pColumn); /** * @brief * Compares the group caption of the current record item with * the group caption of a provided record item/group row. * @param pColumn Pointer to the corresponding column of the current record item. * @param pItem Pointer to the record item with the group caption to * compare with the group caption of the current record item. * @return * Zero if the group caption of the current record item is * identical to the group caption of pItem/pGroupRow; * Less than zero if the group caption of the current record item is * less than the group caption of pItem/pGroupRow; * Greater than zero if the group caption of the current record item is * greater than the group caption of pItem/pGroupRow. */ virtual int CompareGroupCaption(CXTPGridColumn* pColumn, CXTPGridRecordItem* pItem); /** * @brief * Compares the group caption of the current record item with * the group caption of a provided record item/group row. * @param pColumn Pointer to the corresponding column of the current record item. * @param pGroupRow Pointer to the group row with the group caption to * compare with the group caption of the current record item. * @return * Zero if the group caption of the current record item is * identical to the group caption of pItem/pGroupRow; * Less than zero if the group caption of the current record item is * less than the group caption of pItem/pGroupRow; * Greater than zero if the group caption of the current record item is * greater than the group caption of pItem/pGroupRow. */ virtual int CompareGroupCaption(CXTPGridColumn* pColumn, CXTPGridGroupRow* pGroupRow); /** * @brief * Compares the current record item with a provided record item. * Provides default behavior for descendants. * @param pColumn Pointer to the corresponding column of the current record item. * @param pItem Pointer to the record item to compare with the current record item. * @return * Zero if the current record item is equal to pItem; * Less than zero if the current record item is less than pItem; * Greater than zero if the current record item is greater than pItem. */ virtual int Compare(CXTPGridColumn* pColumn, CXTPGridRecordItem* pItem); /** * @brief * Sets the record item text font. * @param pFont New font to be set. */ virtual void SetFont(CFont* pFont); /** * @brief * Gets the record item text font. * @return * A pointer to the record item text font. */ virtual CFont* GetFont(); /** * @brief * Gets the tooltip text of the record item. * @return * The tooltip text of the record item */ virtual CString GetTooltip() const; /** * @brief * Sets the tooltip text for the record item. * @param lpszTooltip Tooltip text to be set. */ virtual void SetTooltip(LPCTSTR lpszTooltip); /** * @brief * Sets the record item text color. * @param clrText New color to be set. */ virtual void SetTextColor(COLORREF clrText); /** * @brief * Gets the record item text color. * @return * The record item text color. */ virtual COLORREF GetTextColor(); /** * @brief * Sets the bold state of the record item font. * @param bBold TRUE to set the record item font to bold, * FALSE to set the record item font to normal. */ virtual void SetBold(BOOL bBold = TRUE); /** * @brief * Determines the bold state of the record item font. * @return * TRUE if the record item font is bold, FALSE if the record item font is normal. */ virtual BOOL IsBold() const; /** * @brief * Sets the record item text background color. * @param clrBackground Record item text background color to be set. */ virtual void SetBackgroundColor(COLORREF clrBackground); /** * @brief * Gets the record item text background color. * @return * The record item text background color. */ virtual COLORREF GetBackgroundColor(); /** * @brief * Gets the record item formula. * @return * The record item formula. */ virtual CString GetFormula() const; /** * @brief * Sets the record item formula. * @param sFormula Record item formula to be set. */ virtual void SetFormula(LPCTSTR sFormula); /** * @brief * Gets the record item caption format string. * @return * The record item caption format string. */ virtual CString GetFormatString() const; /** * @brief * Sets the record item caption format string. * @param strFormat Record item caption format string to be set. * @details * If the record item caption format string is set, then the caption text will * be formatted according to this format string before it is drawn. This is * convenient in many cases (e.g. when drawing dates). The format string is C like * style; see the sprintf() C function or the CString.Format() member function. */ virtual void SetFormatString(LPCTSTR strFormat); /** * @brief * Determines the editable state of the record item. * @return * The editable state of the record item. */ virtual BOOL IsEditable() const; /** * @brief * Sets the editable state for the record item. * @param bEditable TRUE to set the record item to editable, FALSE otherwise. * @return * The previous editable state of the record item. */ virtual BOOL SetEditable(BOOL bEditable = TRUE); /** * @brief * Adds a new hyperlink to the record item. * @param pHyperlink Pointer to the hyperlink to add. * @details * Each record item can have a number of hyperlinks. * To add a new hyperlink to the record item, you must * first create the new instance of hyperlink class. * @return * The zero-based ID of the newly added hyperlink. * * Example: *
AddHyperlink(new CXTPGridHyperlink(27, 7);* @see * CXTPGridHyperlink. */ virtual int AddHyperlink(CXTPGridHyperlink* pHyperlink); /** * @brief * Gets the number of hyperlinks in the record item. * @details * Each record item can have a number of hyperlinks. To process all of * the hyperlinks of a record item, you must get the number of hyperlinks * in the record item by using the GetHyperlinksCount() member function. * @return * The number of hyperlinks in the record item. */ virtual int GetHyperlinksCount() const; /** * @brief * Retrieves the hyperlink at a specified index. * @param nHyperlink Zero-based index of the hyperlink to retrieve. * @details * To process a hyperlink, you get a pointer to it by calling GetHyperlinkAt(); * @return * A pointer to the hyperlink at the specified index. * * Example: *
* int nHyperlinks = GetHyperlinksCount();
* CXTPGridHyperlink* pHyperlink;
* for(int nHyperlink = 0; nHyperlink < nHyperlinks; nHyperlink++)
* {
* pHyperlink = GetHyperlinkAt(nHyperlink);
* // YOUR PROCESSING HERE
* // ...
* //
* }
*
* @see
* CXTPGridHyperlink.
*/
virtual CXTPGridHyperlink* GetHyperlinkAt(int nHyperlink) const;
/**
* @brief
* Removes the hyperlink at a specified index.
* @param nHyperlink Zero-based index of the hyperlink to remove.
*/
virtual void RemoveHyperlinkAt(int nHyperlink);
/**
* @brief
* Calculates preview item metrics based on specified draw arguments.
* Can be overridden by descendants.
* @param pDrawArgs Pointer to an XTP_GRIDRECORDITEM_DRAWARGS
* structure used to calculate item metrics.
* @param pItemMetrics Pointer to an XTP_GRIDRECORDITEM_METRICS
* structure to fill with values.
* @see
* XTP_GRIDRECORDITEM_DRAWARGS, XTP_GRIDRECORDITEM_METRICS
*/
virtual void GetItemMetrics(XTP_GRIDRECORDITEM_DRAWARGS* pDrawArgs,
XTP_GRIDRECORDITEM_METRICS* pItemMetrics);
/**
* @brief
* Determines if the record item is a preview item.
* @return
* TRUE if the record item is a preview item, otherwise FALSE.
*/
virtual BOOL IsPreviewItem() const;
/**
* @brief
* Gets the index of the record item.
* @return
* The index of the record item.
*/
int GetIndex() const;
/**
* @brief
* Gets the ID of the associated resource bitmap.
* @return
* The ID of the associated resource bitmap.
*/
virtual int GetIconIndex() const;
/**
* @brief
* Sets the ID for the associated resource bitmap.
* @param nIconIndex ID of the resource bitmap to set.
* @return
* The ID of the previous associated resource bitmap.
*/
virtual int SetIconIndex(int nIconIndex);
/**
* @brief
* Gets the alignment value of the record item.
* @return
* The alignment value of the record item; one of the values
* defined by the XTPGridColumnIconAlignment enumeration.
*/
int GetAlignment() const;
/**
* @brief
* Sets the alignment value for the record item.
* @param nAlignment Alignment value to be set; must be one of the values
* defined by the XTPGridColumnIconAlignment enumeration.
* @return
* The previous alignment value of the record item; one of the values
* defined by the XTPGridColumnIconAlignment enumeration.
*/
int SetAlignment(int nAlignment);
/**
* @brief
* Gets the sort priority of the record item.
* @return
* The sort priority of the record item.
* @see
* GetSortPriority, SetSortPriority, SetGroupPriority, GetGroupPriority
*/
virtual int GetSortPriority() const;
/**
* @brief
* Sets the sort priority for the record item.
* @param nSortPriority Sort priority to be set.
* @see
* GetSortPriority, SetSortPriority, SetGroupPriority, GetGroupPriority
*/
virtual void SetSortPriority(int nSortPriority);
/**
* @brief
* Gets the group priority of the record item.
* @return
* The group priority of the record item.
* @see
* GetSortPriority, SetSortPriority, SetGroupPriority, GetGroupPriority
*/
virtual int GetGroupPriority() const;
/**
* @brief
* Sets the group priority for the record item.
* @param nGroupPriority Group priority to be set.
* @see
* GetSortPriority, SetSortPriority, SetGroupPriority, GetGroupPriority
*/
virtual void SetGroupPriority(int nGroupPriority);
/**
* @brief
* Sets the group caption for the record item.
* @param strCaption Group caption to be set.
*/
virtual void SetGroupCaption(LPCTSTR strCaption);
/**
* @brief
* Sets the caption for the record item.
* @param strCaption Caption to be set.
*/
virtual void SetCaption(LPCTSTR strCaption);
/**
* @brief
* Causes formula computed value to be updated.
*/
void UpdateValue();
/**
* @brief
* Sets if the record item is checked.
* @param bChecked TRUE if the record item is checked.
* @see
* IsChecked, HasCheckbox
*/
virtual void SetChecked(BOOL bChecked);
/**
* @brief
* Determines if the record item is checked.
* @return
* TRUE if the record item is checked, otherwise FALSE.
* @see
* SetChecked, HasCheckbox
*/
virtual BOOL IsChecked() const;
/**
* @brief
* Sets the checked state for the record item.
*
* @param iState Integer value denoting the state of the check box; must be one
* of the values defined by the XTPGridCheckState enumeration.
* @see
* SetChecked, HasCheckbox
*/
void SetCheckedState(int iState);
/**
* @brief
* Gets the checked state of the record item.
* @return
* An integer value denoting the state of the check box; one
* of the values defined by the XTPGridCheckState enumeration.
* @see
* SetChecked, HasCheckbox
*/
int GetCheckedState() const;
/**
* @brief
* Adds check box area for item.
* @param bHasCheckbox TRUE if item has check box area.
* @param bTristate TRUE is tri-state checkbox, FALSE if usual
* @see
* SetChecked, IsChecked
*/
virtual void HasCheckbox(BOOL bHasCheckbox, BOOL bTristate = FALSE);
/**
* @brief
* Determines if item has check box area
* @return
* TRUE if item has check box; otherwise FALSE
* @see
* SetChecked, IsChecked
*/
virtual BOOL GetHasCheckbox() const;
/**
* @brief
* Returns whether items with a check box will go into edit mode on click.
* @return
* TRUE if items with a check box will go into edit mode on click.
*/
BOOL GetCanEditCheckboxItem() const;
/**
* @brief
* Specifies whether items with a check box will go into edit mode on click.
* @param bSet TRUE for items with a check box will go into edit mode on click.
*/
void SetCanEditCheckboxItem(BOOL bSet);
/**
* @brief
* Sets the parent record object.
* @param pGridRecord Pointer to a CXTPGridRecord object.
*/
void SetRecord(CXTPGridRecord* pGridRecord);
/**
* @brief
* Gets the parent record object.
* @return
* A pointer to the parent record object.
*/
CXTPGridRecord* GetRecord() const;
/**
* @brief
* Retrieves the application-supplied, 32-bit value associated
* with the record item.
* @return
* The 32-bit value associated with the record item.
*/
virtual DWORD_PTR GetItemData() const;
/**
* @brief
* Sets the 32-bit value associated with the record item.
* @param dwData New value to be set.
*/
virtual void SetItemData(DWORD_PTR dwData);
/**
* @brief
* Determines if the record item can receive focus.
* @return
* TRUE if the record item can receive focus, otherwise FALSE.
*/
virtual BOOL IsFocusable() const;
/**
* @brief
* Specifies if the record item can receive focus.
* @param bFocusable TRUE to allow the record item to receive focus,
* FALSE to disallow the record item from receiving focus.
* @details
* This method specifies if the grid item can receive focus and overrides
* the CXTPGridControl::FocusSubItems setting which only allows for
* individual items to receive focus. If FALSE, then the record item cannot
* be edited and combo/expand buttons will not be displayed.
*/
virtual void SetFocusable(BOOL bFocusable);
/**
* @brief
* Call this member function to store/load a grid record item
* using the specified data object.
* @param pPX Source/destination CXTPPropExchange data object reference.
*/
virtual void DoPropExchange(CXTPPropExchange* pPX);
/**
* @brief
* Gets the Markup element that renders the item.
* @return
* A pointer to the Markup element that renders the item.
*/
CXTPMarkupUIElement* GetMarkupUIElement() const;
/**
* @brief
* Resets the Markup element.
* @see
* GetMarkupUIElement, CXTPGridControl::EnableMarkup
*/
virtual void ResetMarkupUIElement();
/**
* @brief
* The framework calls this member function to determine whether a
* point is in the bounding rectangle of the specified tool.
* @param point Specifies the x- and y-coordinate of the cursor. These
* coordinates are always relative to the upper-left corner of the window
* @param pTI Pointer to a TOOLINFO structure.
* @return
* If the tooltip control was found, the window control ID. If
* the tooltip control was not found, -1.
*/
virtual INT_PTR OnToolHitTest(CPoint point, TOOLINFO* pTI);
// GRID
void Merge(CXTPGridRecordItem* pMergeItem);
BOOL IsMerged() const;
/**
* @brief
* Determines if the current item is in a merge group and, if so,
* if it is not the left-top (main) item of the group.
* @details
* If the current item is in a merge group and is not the
* left-top (main) item of the group, then the current item
* receives properties from the main item of the merge group.
* @return
* TRUE if the current item is in a merge group and is not the
* left-top (main) item of the group, otherwise FALSE.
*/
BOOL IsChildOfMerge() const;
CXTPGridRecordItem* GetMergeItem() const;
// Pointer to the top-left item in the merged group; may point to itself if it is the
// top-left item in the merge group. NULL if the item does not belong to merged cells.
CXTPGridRecordItem* m_pMergeItem;
// GRID
protected:
virtual void ParseBBCode(CString& strText);
/**
* @brief
* Draws the check box bitmap.
* @param pDrawArgs Pointer to an XTP_GRIDRECORDITEM_DRAWARGS
* structure containing drawing arguments.
* @param rcItem Item area rectangle coordinates.
*/
virtual void DrawCheckBox(XTP_GRIDRECORDITEM_DRAWARGS* pDrawArgs, CRect& rcItem);
/**
* @brief
* Gets the hyperlinks collection.
* @return
* A pointer to a CXTPGridHyperlinks object.
*/
CXTPGridHyperlinks* GetHyperlinks();
protected:
virtual BOOL IsAllowEdit(XTP_GRIDRECORDITEM_ARGS* pItemArgs);
/**
* @brief
* This method is called when an editable item enters edit mode.
* @param pItemArgs Pointer to an XTP_GRIDRECORDITEM_ARGS structure.
* @details
* An item can enter edit mode when the user clicks on it and starts typing,
* or when a check box item is checked/unchecked.
* @return
* TRUE if the edit request was successful, FALSE if the edit request was canceled.
*/
virtual BOOL OnRequestEdit(XTP_GRIDRECORDITEM_ARGS* pItemArgs);
/**
* @brief
* This method is called when the user begins to edit an item.
* @param pItemArgs Pointer to an XTP_GRIDRECORDITEM_ARGS
* structure containing item arguments.
*/
virtual void OnBeginEdit(XTP_GRIDRECORDITEM_ARGS* pItemArgs);
/**
* @brief
* This method is called when the user presses a key.
* @param pItemArgs Pointer to an XTP_GRIDRECORDITEM_ARGS
* structure containing item arguments.
* @param nChar Pressed character code.
* @return
* TRUE if the item processed the key.
*/
virtual BOOL OnChar(XTP_GRIDRECORDITEM_ARGS* pItemArgs, UINT nChar);
public:
/**
* @brief
* This method is called when the user cancels editing an item.
* @param pControl Pointer to the parent Grid control.
* @param bApply TRUE to save the value of the in-place edit.
*/
virtual void OnCancelEdit(CXTPGridControl* pControl, BOOL bApply);
/**
* @brief
* This method is called to save the value from an in-place edit.
* @param pItemArgs Pointer to an XTP_GRIDRECORDITEM_ARGS
* structure containing item arguments.
*/
virtual void OnValidateEdit(XTP_GRIDRECORDITEM_ARGS* pItemArgs);
/**
* @brief
* This method is called when the value of the in-place edit control is changed.
* @param pItemArgs Pointer to an XTP_GRIDRECORDITEM_ARGS
* structure containing item arguments.
* @param szText New in-place edit text.
* virtual void OnEditChanged(XTP_GRIDRECORDITEM_ARGS* pItemArgs, LPCTSTR szText)
* {
* UNREFERENCED_PARAMETER(pItemArgs);
* UNREFERENCED_PARAMETER(szText);
* }
*/
virtual void OnEditChanged(XTP_GRIDRECORDITEM_ARGS* pItemArgs, LPCTSTR szText);
/**
* @brief
* This method is called before the value of the in-place editor is
* changed by the user.
* @param pItemArgs Pointer to an XTP_GRIDRECORDITEM_ARGS
* structure containing item arguments.
* @param rstrNewText New string to be set in the editor.
* @return
* FALSE to cancel the edit operation.
* virtual BOOL OnEditChanging(XTP_GRIDRECORDITEM_ARGS* pItemArgs, CString& rstrNewText)
* {
* UNREFERENCED_PARAMETER(pItemArgs);
* UNREFERENCED_PARAMETER(rstrNewText);
* return TRUE;
* }
*/
virtual BOOL OnEditChanging(XTP_GRIDRECORDITEM_ARGS* pItemArgs, CString& rstrNewText);
/**
* @brief
* This method is called when in-place editing has been canceled and the
* value has not changed.
* @param pItemArgs Pointer to an XTP_GRIDRECORDITEM_ARGS
* structure containing item arguments.
*/
virtual void OnEditCanceled(XTP_GRIDRECORDITEM_ARGS* pItemArgs);
/**
* @brief
* This method is called when the value of the selected contraint of the
* in-place list is changed by the user.
* @param pItemArgs Pointer to an XTP_GRIDRECORDITEM_ARGS
* structure containing item arguments.
* @param pConstraint Pointer to the selected constraint.
*/
virtual void OnConstraintChanged(XTP_GRIDRECORDITEM_ARGS* pItemArgs,
CXTPGridRecordItemConstraint* pConstraint);
/**
* @brief
* Gets the value associated with a selected constraint.
* @param pItemArgs Pointer to an XTP_GRIDRECORDITEM_ARGS
* structure containing item arguments.
* @return
* The value associated with the selected constraint.
*/
virtual DWORD GetSelectedConstraintData(XTP_GRIDRECORDITEM_ARGS* pItemArgs);
/**
* @brief
* This method is called when the user presses the in-place button of the item.
* @param pButton Pointer to the in-place button of the item.
*/
virtual void OnInplaceButtonDown(CXTPGridInplaceButton* pButton);
/**
* @brief
* Gets the edit options of the item.
* @param pColumn Pointer to the corresponding column of the item.
* @return
* A pointer to the CXTPGridRecordItemEditOptions object.
*/
CXTPGridRecordItemEditOptions* GetEditOptions(CXTPGridColumn* pColumn);
/**
* @brief
* Gets the item controls list.
* @return
* A pointer to the CXTPGridRecordItemControls object.
*/
CXTPGridRecordItemControls* GetItemControls();
double StringToDouble(CString strText);
/**
* @brief
* Creates a border for this item.
* @return TRUE if successful; otherwise FALSE.
*/
BOOL CreateBorder();
/**
* @brief
* Destroys the border of this item.
* @return TRUE if successful; otherwise FALSE.
*/
BOOL DestroyBorder();
/**
* @brief
* Gets the border of this item.
* @return
* A pointer to the border of this item.
*/
CXTPGridBorder* GetBorder() const;
/**
* @brief
* Sets the parent grid object.
* @param pControl Pointer to a CXTPGridControl object.
*/
void SetGridControl(CXTPGridControl* pControl);
protected:
/** @cond */
/**
* @brief
* If possible, returns the column associated with this Record Item.
* Otherwise, returns NULL
*/
virtual CXTPGridColumn* GetColumn();
virtual void DoMouseButtonClick();
/** @endcond */
protected:
CXTPGridControl* m_pControl; /**< Parent Grid control. */
CXTPGridRecord* m_pRecord; /**< Pointer to the associated record. */
CXTPGridBorder* m_pBorder; /**< Item border. */
CFont* m_pFontCaption; /**< Storage for item caption font. */
COLORREF m_clrText; /**< Storage for item text color. */
COLORREF m_clrBackground; /**< Storage for item background color. */
BOOL m_bBoldText; /**< TRUE if bold text. */
CString m_strFormatString; /**< Stores string for extra formatting of item caption. */
CString m_strFormula; /**< Stores Formula with simple algorithm to calculate. */
BOOL m_bEditable; /**< Stores editable flag. */
CXTPGridHyperlinks* m_pHyperlinks; /**< Array of the Item's hyperlinks. */
int m_nIconIndex; /**< ID of the bitmap from the application resources. */
int m_nSortPriority; /**< Sort priority. */
int m_nGroupPriority; /**< Group priority. */
CString m_strGroupCaption; /**< Caption of the group. */
CString m_strCaption; /**< Caption of the item. */
BOOL m_bFocusable; /**< TRUE if item accept focus. */
int m_checkState; /**< TRUE if item checked. */
BOOL m_bHasCheckbox; /**< TRUE if item has check box. */
BOOL m_bCanEditCheckboxItem; /**< TRUE if an item with a check box will get an edit control
(only useful if column is wide) */
BOOL m_bTristateCheckbox; /**< TRUE if the check box is tri-state. */
DWORD_PTR m_dwData; /**< The 32-bit value associated with the item. */
CString m_strTooltip; /**< Tooltip of the item. */
CXTPGridRecordItemEditOptions* m_pEditOptions; /**< Edit options of the item. */
XTPGridColumnIconAlignment m_Alignment; /**< Alignment style for item. */
CXTPGridRecordItemControls* m_pItemControls; /**< Record item control list. */
CXTPGridRecordItemControl* m_pFocusedItemControl; /**< Focused record item control. */
BOOL m_bItemControlUnderMouse; /**< TRUE if an item control is under the mouse pointer. */
CXTPGridRecordItemControlHookWnd* m_pItemControlHookWnd; /**< Item control hook window. */
CRect m_rcGlyph; /**< Coordinates of drawn glyph. */
CXTPMarkupUIElement* m_pMarkupUIElement; /**< Markup element. */
# ifdef _XTP_ACTIVEX
/** @cond */
DECLARE_DISPATCH_MAP()
DECLARE_INTERFACE_MAP()
DECLARE_OLETYPELIB_EX(CXTPGridRecordItem);
afx_msg LPDISPATCH OleGetRecord();
afx_msg LPDISPATCH OleGetEditOptions();
afx_msg void OleCreateEditOptions();
afx_msg LPDISPATCH OleGetHyperlinks();
afx_msg BSTR OleGetFormat();
afx_msg void OleSetFormat(LPCTSTR pcszFormat);
afx_msg BSTR OleGetFormula();
afx_msg void OleSetFormula(LPCTSTR pcszFormula);
afx_msg BSTR OleGetCaption();
afx_msg void OleSetCaption(LPCTSTR pcszCaption);
afx_msg BSTR OleGetGroupCaption();
afx_msg void OleSetGroupCaption(LPCTSTR pcszGroupCaption);
afx_msg BSTR OleGetTooltip();
afx_msg void OleSetTooltip(LPCTSTR pcszTooltip);
afx_msg LPDISPATCH OleGetItemControls();
afx_msg LPDISPATCH OleGetMarkupUIElement();
COleVariant m_oleTag;
/** @endcond */
# endif
friend class CXTPGridRecord;
friend class CXTPGridControl;
friend class CXTPGridNavigator;
friend class CXTPGridIconNavigator;
friend class CXTPGridRecordItemControls;
};
AFX_INLINE CString CXTPGridRecordItem::GetFormula() const
{
return m_strFormula;
}
AFX_INLINE void CXTPGridRecordItem::SetFormula(LPCTSTR sFormula)
{
m_strFormula = sFormula;
}
AFX_INLINE CString CXTPGridRecordItem::GetFormatString() const
{
return m_strFormatString;
}
AFX_INLINE void CXTPGridRecordItem::SetFormatString(LPCTSTR strFormat)
{
m_strFormatString = strFormat;
}
AFX_INLINE BOOL CXTPGridRecordItem::SetEditable(BOOL bEditable)
{
BOOL bOldEditable = m_bEditable;
m_bEditable = bEditable;
return bOldEditable;
}
AFX_INLINE BOOL CXTPGridRecordItem::IsPreviewItem() const
{
return FALSE;
}
AFX_INLINE int CXTPGridRecordItem::GetIconIndex() const
{
return m_nIconIndex;
}
AFX_INLINE int CXTPGridRecordItem::SetIconIndex(int nIconIndex)
{
int nOldID = GetIconIndex();
m_nIconIndex = nIconIndex;
return nOldID;
}
AFX_INLINE int CXTPGridRecordItem::GetAlignment() const
{
return m_Alignment;
}
AFX_INLINE int CXTPGridRecordItem::SetAlignment(int nAlignment)
{
int nOld = m_Alignment;
m_Alignment = (XTPGridColumnIconAlignment)nAlignment;
return nOld;
}
AFX_INLINE int CXTPGridRecordItem::GetSortPriority() const
{
return m_nSortPriority;
}
AFX_INLINE void CXTPGridRecordItem::SetSortPriority(int nSortPriority)
{
m_nSortPriority = nSortPriority;
}
AFX_INLINE int CXTPGridRecordItem::GetGroupPriority() const
{
return m_nGroupPriority;
}
AFX_INLINE void CXTPGridRecordItem::SetGroupPriority(int nGroupPriority)
{
m_nGroupPriority = nGroupPriority;
}
AFX_INLINE void CXTPGridRecordItem::SetGroupCaption(LPCTSTR strCaption)
{
m_strGroupCaption = strCaption;
}
AFX_INLINE void CXTPGridRecordItem::SetChecked(BOOL bChecked)
{
if (bChecked)
{
m_checkState = xtpGridCheckStateChecked;
}
else
{
m_checkState = xtpGridCheckStateUnchecked;
}
}
AFX_INLINE BOOL CXTPGridRecordItem::IsChecked() const
{
return xtpGridCheckStateChecked == m_checkState;
}
AFX_INLINE void CXTPGridRecordItem::SetCheckedState(int iState)
{
if (m_bTristateCheckbox)
{
m_checkState = XTPGridCheckState(iState);
}
else
{
m_checkState = iState ? xtpGridCheckStateChecked : xtpGridCheckStateUnchecked;
}
}
AFX_INLINE int CXTPGridRecordItem::GetCheckedState() const
{
if (m_bTristateCheckbox)
{
return m_checkState;
}
else
{
return m_checkState ? xtpGridCheckStateChecked : xtpGridCheckStateUnchecked;
}
}
AFX_INLINE void CXTPGridRecordItem::HasCheckbox(BOOL bHasCheckbox, BOOL bTristate)
{
m_bHasCheckbox = bHasCheckbox;
m_bTristateCheckbox = bTristate;
}
AFX_INLINE BOOL CXTPGridRecordItem::GetHasCheckbox() const
{
return m_bHasCheckbox;
}
AFX_INLINE void CXTPGridRecordItem::SetRecord(CXTPGridRecord* pGridRecord)
{
m_pRecord = pGridRecord;
ResetMarkupUIElement();
}
AFX_INLINE CXTPGridRecord* CXTPGridRecordItem::GetRecord() const
{
return m_pRecord;
}
AFX_INLINE void CXTPGridRecordItem::SetFocusable(BOOL bFocusable)
{
m_bFocusable = bFocusable;
}
AFX_INLINE DWORD_PTR CXTPGridRecordItem::GetItemData() const
{
return m_dwData;
}
AFX_INLINE void CXTPGridRecordItem::SetItemData(DWORD_PTR dwData)
{
m_dwData = dwData;
}
AFX_INLINE DWORD
CXTPGridRecordItem::GetSelectedConstraintData(XTP_GRIDRECORDITEM_ARGS* /*pItemArgs*/)
{
return DWORD(-1);
}
AFX_INLINE CString CXTPGridRecordItem::GetTooltip() const
{
if (IsChildOfMerge())
{
return GetMergeItem()->m_strTooltip;
}
return m_strTooltip;
}
AFX_INLINE void CXTPGridRecordItem::SetTooltip(LPCTSTR lpszTooltip)
{
m_strTooltip = lpszTooltip;
}
AFX_INLINE BOOL CXTPGridRecordItem::IsBold() const
{
return m_bBoldText;
}
AFX_INLINE CXTPMarkupUIElement* CXTPGridRecordItem::GetMarkupUIElement() const
{
return m_pMarkupUIElement;
}
AFX_INLINE void CXTPGridRecordItem::OnEditCanceled(XTP_GRIDRECORDITEM_ARGS* pItemArgs)
{
UNREFERENCED_PARAMETER(pItemArgs);
}
AFX_INLINE void CXTPGridRecordItem::SetGridControl(CXTPGridControl* pControl)
{
m_pControl = pControl;
}
/** @cond */
# include "Common/Base/Diagnostic/XTPEnableNoisyWarnings.h"
#endif //#if !defined(__XTPGRIDRECORDITEM_H__)
/** @endcond */