XTPReportRecordItemControls.h
上传用户:szled88
上传日期:2015-04-09
资源大小:43957k
文件大小:29k
源码类别:

对话框与窗口

开发平台:

Visual C++

  1. // XTPReportRecordItemControls.h
  2. //
  3. // This file is a part of the XTREME REPORTCONTROL MFC class library.
  4. // (c)1998-2007 Codejock Software, All Rights Reserved.
  5. //
  6. // THIS SOURCE FILE IS THE PROPERTY OF CODEJOCK SOFTWARE AND IS NOT TO BE
  7. // RE-DISTRIBUTED BY ANY MEANS WHATSOEVER WITHOUT THE EXPRESSED WRITTEN
  8. // CONSENT OF CODEJOCK SOFTWARE.
  9. //
  10. // THIS SOURCE CODE CAN ONLY BE USED UNDER THE TERMS AND CONDITIONS OUTLINED
  11. // IN THE XTREME TOOLKIT PRO LICENSE AGREEMENT. CODEJOCK SOFTWARE GRANTS TO
  12. // YOU (ONE SOFTWARE DEVELOPER) THE LIMITED RIGHT TO USE THIS SOFTWARE ON A
  13. // SINGLE COMPUTER.
  14. //
  15. // CONTACT INFORMATION:
  16. // support@codejock.com
  17. // http://www.codejock.com
  18. //
  19. /////////////////////////////////////////////////////////////////////////////
  20. //{{AFX_CODEJOCK_PRIVATE
  21. #if !defined(__XTPREPORTRECORDITEMCONTROLS_H__)
  22. #define __XTPREPORTRECORDITEMCONTROLS_H__
  23. //}}AFX_CODEJOCK_PRIVATE
  24. #if _MSC_VER > 1000
  25. #pragma once
  26. #endif // _MSC_VER > 1000
  27. struct XTP_NM_REPORTRECORDITEM;
  28. struct XTP_REPORTRECORDITEM_CLICKARGS;
  29. class CXTPReportRecordItemControl;
  30. //-----------------------------------------------------------------------
  31. // Summary:
  32. //      This enum defines types for the item control.
  33. //-----------------------------------------------------------------------
  34. enum XTPReportItemControlType
  35. {
  36. xtpItemControlTypeUndefined = 0, // Undefined type.
  37. xtpItemControlTypeButton    = 1, // Button.
  38. };
  39. //-----------------------------------------------------------------------
  40. // Summary:
  41. //      This enum defines alignment styles for the item control.
  42. //-----------------------------------------------------------------------
  43. enum XTPReportItemControlAlignment
  44. {
  45. xtpItemControlUnknown     = 0,     // Unknown (empty) value.
  46. xtpItemControlLeft        = 0x001, // Aligns control to the left.
  47. xtpItemControlRight       = 0x002, // Aligns control to the right.
  48. };
  49. //-----------------------------------------------------------------------
  50. // Summary:
  51. //     This structure is sent to Main window in a WM_NOTIFY message from item control
  52. //     and provides all parameters that are needed in processing control specific
  53. //     notifications by the main window
  54. // Remarks:
  55. //     Use this structure to get item control which produce the message.
  56. // See Also: XTP_NM_REPORT_ITEMBUTTONCLICK
  57. //-----------------------------------------------------------------------
  58. struct XTP_NM_REPORTITEMCONTROL : public XTP_NM_REPORTRECORDITEM
  59. {
  60. CXTPReportRecordItemControl* pItemControl; // Pointer to the item control.
  61. };
  62. //===========================================================================
  63. // Summary:
  64. //     This class represents a generic item control and handles control's
  65. //     behaviour, common for all derived item controls.
  66. //     You cannot use this class directly in the control.
  67. //     If you wish to add your own item control, you must inherit
  68. //     it from CXTPReportRecordItemControl. Some member functions in this class
  69. //     are virtual.
  70. // See Also:
  71. //     CXTPReportRecordItemButton
  72. //===========================================================================
  73. class _XTP_EXT_CLASS CXTPReportRecordItemControl : public CXTPCmdTarget
  74. //class _XTP_EXT_CLASS CXTPReportRecordItemControl : public CXTPHeapObjectT<CXTPCmdTarget, CXTPReportDataAllocator>
  75. {
  76. DECLARE_SERIAL(CXTPReportRecordItemControl)
  77. public:
  78. //-----------------------------------------------------------------------
  79. // Summary:
  80. //     Creates a record item control.
  81. // Parameters:
  82. //     szCaption - An item control caption.
  83. //-----------------------------------------------------------------------
  84. CXTPReportRecordItemControl(LPCTSTR szCaption = _T(""));
  85. //-----------------------------------------------------------------------
  86. // Summary:
  87. //     CXTPReportRecordItemControl default destructor
  88. //-----------------------------------------------------------------------
  89. virtual ~CXTPReportRecordItemControl();
  90. //-----------------------------------------------------------------------
  91. // Summary:
  92. //     Call this member function to Store/Load a report item control
  93. //     using the specified data object.
  94. // Parameters:
  95. //     pPX - Source or destination CXTPPropExchange data object reference.
  96. //-----------------------------------------------------------------------
  97. virtual void DoPropExchange(CXTPPropExchange* pPX);
  98. //-----------------------------------------------------------------------
  99. // Summary:
  100. //     Retrieves the item control caption.
  101. // Returns:
  102. //     Item control caption.
  103. // See Also:
  104. //     SetCaption
  105. //-----------------------------------------------------------------------
  106. CString GetCaption();
  107. //-----------------------------------------------------------------------
  108. // Summary:
  109. //     Sets the item control caption.
  110. // Parameters:
  111. //     szCaption - Item control caption.
  112. // See Also:
  113. //     GetCaption
  114. //-----------------------------------------------------------------------
  115. void SetCaption(LPCTSTR szCaption);
  116. //-----------------------------------------------------------------------
  117. // Summary:
  118. //     Retrieves the type of the item control.
  119. // Returns:
  120. //     Item control type.
  121. // See Also:
  122. //     XTPReportItemControlType
  123. //-----------------------------------------------------------------------
  124. int GetType();
  125. //-----------------------------------------------------------------------
  126. // Summary:
  127. //     Returns the index of the item control.
  128. // Returns:
  129. //     Item control index.
  130. //-----------------------------------------------------------------------
  131. int GetIndex();
  132. //-----------------------------------------------------------------------
  133. // Summary:
  134. //     Call this member function to get the item control caption font.
  135. // Returns:
  136. //     Pointer to the current caption font.
  137. // See Also:
  138. //     SetFont
  139. //-----------------------------------------------------------------------
  140. CFont* GetFont();
  141. //-----------------------------------------------------------------------
  142. // Summary:
  143. //     Sets the item control caption font.
  144. // Parameters:
  145. //     pFont - New font for caption.
  146. // See Also:
  147. //     GetFont
  148. //-----------------------------------------------------------------------
  149. void SetFont(CFont* pFont);
  150. //-----------------------------------------------------------------------
  151. // Summary:
  152. //     Returns the item control caption color.
  153. // Returns:
  154. //     Current caption color.
  155. // See Also:
  156. //     SetCaptionColor
  157. //-----------------------------------------------------------------------
  158. COLORREF GetCaptionColor();
  159. //-----------------------------------------------------------------------
  160. // Summary:
  161. //     Sets the item control caption color.
  162. // Parameters:
  163. //     clrCaption - New color.
  164. // See Also:
  165. //     GetCaptionColor
  166. //-----------------------------------------------------------------------
  167. void SetCaptionColor(COLORREF clrCaption);
  168. //-----------------------------------------------------------------------
  169. // Summary:
  170. //     Retrieves the item control size.
  171. // Returns:
  172. //     Item control size.
  173. // See Also:
  174. //     SetSize, GetWidth, SetWidth, GetHeight, SetHeight
  175. //-----------------------------------------------------------------------
  176. CSize GetSize();
  177. //-----------------------------------------------------------------------
  178. // Summary:
  179. //     Sets the item control size.
  180. //     If the size is set to (<=0, <=0), the control occupies the rest of the cell.
  181. // Parameters:
  182. //     sizeControl - item control size.
  183. // See Also:
  184. //     GetSize, GetWidth, SetWidth, GetHeight, SetHeight
  185. //-----------------------------------------------------------------------
  186. void SetSize(CSize sizeControl);
  187. //-----------------------------------------------------------------------
  188. // Summary:
  189. //     Retrieves the item control width.
  190. // Returns:
  191. //     Item control width.
  192. // See Also:
  193. //     GetSize, SetSize, SetWidth, GetHeight, SetHeight
  194. //-----------------------------------------------------------------------
  195. int GetWidth();
  196. //-----------------------------------------------------------------------
  197. // Summary:
  198. //     Sets the item control width.
  199. //     If the width is less than 0, the control occupies the rest cell width.
  200. // Parameters:
  201. //     nWidth - item control width.
  202. // See Also:
  203. //     GetSize, SetSize, GetWidth, GetHeight, SetHeight
  204. //-----------------------------------------------------------------------
  205. void SetWidth(int nWidth);
  206. //-----------------------------------------------------------------------
  207. // Summary:
  208. //     Retrieves the item control height.
  209. // Returns:
  210. //     Item control height.
  211. // See Also:
  212. //     GetSize, SetSize, GetWidth, SetWidth, SetHeight
  213. //-----------------------------------------------------------------------
  214. int GetHeight();
  215. //-----------------------------------------------------------------------
  216. // Summary:
  217. //     Sets the item control height.
  218. //     If the height is less than 0, the control height is the same as the cell height.
  219. // Parameters:
  220. //     nHeight - item control height.
  221. // See Also:
  222. //     GetSize, SetSize, GetWidth, SetWidth, GetHeight
  223. //-----------------------------------------------------------------------
  224. void SetHeight(int nHeight);
  225. //-----------------------------------------------------------------------
  226. // Summary:
  227. //     Call this member function to get the rectangle occupied by the item control.
  228. // Returns:
  229. //     Item control rectangle.
  230. //-----------------------------------------------------------------------
  231. CRect GetRect();
  232. //-----------------------------------------------------------------------
  233. // Summary:
  234. //     Retrieves the item control flags.
  235. // Returns:
  236. //     Item control flags.
  237. // See Also:
  238. //     SetFlags
  239. //-----------------------------------------------------------------------
  240. UINT GetFlags();
  241. //-----------------------------------------------------------------------
  242. // Summary:
  243. //     Sets the item control flags.
  244. // Parameters:
  245. //     unFlags - new item control flags.
  246. // See Also:
  247. //     GetFlags
  248. //-----------------------------------------------------------------------
  249. void SetFlags(UINT unFlags);
  250. //-----------------------------------------------------------------------
  251. // Summary:
  252. //     Retrieves the item control alignment.
  253. // Returns:
  254. //     Item control alignment.
  255. // See Also:
  256. //     XTPReportItemControlAlignment, SetAlignment
  257. //-----------------------------------------------------------------------
  258. int GetAlignment();
  259. //-----------------------------------------------------------------------
  260. // Summary:
  261. //     Sets the item control alignment.
  262. // Parameters:
  263. //     nAlignment - Item control alignment.
  264. // See Also:
  265. //     XTPReportItemControlAlignment, GetAlignment
  266. //-----------------------------------------------------------------------
  267. void SetAlignment(int nAlignment);
  268. //-----------------------------------------------------------------------
  269. // Summary:
  270. //     Determines if the item control is enabled or disabled.
  271. // Returns:
  272. //     TRUE if item control is enabled, FALSE otherwise.
  273. // See Also:
  274. //     SetEnable
  275. //-----------------------------------------------------------------------
  276. BOOL GetEnable();
  277. //-----------------------------------------------------------------------
  278. // Summary:
  279. //     Call this member function to enable or disable the item control.
  280. //     If the control is disabled, it is drawn as disabled and does not
  281. //     react on user input.
  282. // Parameters:
  283. //     bEnable - TRUE to enable item control, FALSE to disable.
  284. // See Also:
  285. //     GetEnable
  286. //-----------------------------------------------------------------------
  287. void SetEnable(BOOL bEnable);
  288. //-----------------------------------------------------------------------
  289. // Summary:
  290. //     Retrieves the current item control state.
  291. //     The state is control specific.
  292. // Returns:
  293. //     Item control state.
  294. //-----------------------------------------------------------------------
  295. int GetState();
  296. //-----------------------------------------------------------------------
  297. // Summary:
  298. //     Sets the item control themed.
  299. // Parameters:
  300. //     bThemed - TRUE to set item control themed, FALSE otherwise.
  301. //-----------------------------------------------------------------------
  302. void SetThemed(BOOL bThemed);
  303. //-----------------------------------------------------------------------
  304. // Summary:
  305. //     Determines if the item control is themed.
  306. // Returns:
  307. //     TRUE if item control is themed, FALSE otherwise.
  308. //-----------------------------------------------------------------------
  309. BOOL GetThemed();
  310. //-----------------------------------------------------------------------
  311. // Summary:
  312. //     Sets the icon index for a specified control state.
  313. //     The icon specified for the certain state is drawn during control drawing.
  314. //     If no icon is specified for a certain state, the icon for state = 0 is drawn.
  315. //     If no icon specified for any state, no icon is drawn.
  316. // Parameters:
  317. //     nState - item control state.
  318. //     nIconIndex - icon index for specified state.
  319. // See Also:
  320. //     GetIconIndex
  321. //-----------------------------------------------------------------------
  322. void SetIconIndex(int nState, int nIconIndex);
  323. //-----------------------------------------------------------------------
  324. // Summary:
  325. //     Retrieves the icon index for a given item control state.
  326. // Parameters:
  327. //     nState - item control state, for which icon index is retrieved.
  328. // Returns:
  329. //     Icon index for a given item control state.
  330. // See Also:
  331. //     SetIconIndex
  332. //-----------------------------------------------------------------------
  333. int GetIconIndex(int nState);
  334. protected:
  335. //-----------------------------------------------------------------------
  336. // Summary:
  337. //     Sets the rectangle occupied by the item control.
  338. // Parameters:
  339. //     rcControl - item control rectangle.
  340. // See Also:
  341. //     GetRect
  342. //-----------------------------------------------------------------------
  343. void SetRect(CRect rcControl);
  344. public:
  345. //-----------------------------------------------------------------------
  346. // Summary:
  347. //     Processes mouse left button down clicks.
  348. // Parameters:
  349. //     pClickArgs - structure which contains mouse click arguments.
  350. // Remarks:
  351. //     Usually this function is called by ReportRecordItem's OnLButtonDown function
  352. // See Also: XTP_REPORTRECORDITEM_CLICKARGS
  353. //-----------------------------------------------------------------------
  354. virtual void OnLButtonDown(XTP_REPORTRECORDITEM_CLICKARGS* pClickArgs) { UNREFERENCED_PARAMETER(pClickArgs); }
  355. //-----------------------------------------------------------------------
  356. // Summary:
  357. //     Processes mouse left button up clicks.
  358. // Parameters:
  359. //     pClickArgs - structure which contains mouse click arguments
  360. // Remarks:
  361. //     Usually this function is called by ReportRecordItem's OnLButtonUp function
  362. // See Also: XTP_REPORTRECORDITEM_CLICKARGS
  363. //-----------------------------------------------------------------------
  364. virtual void OnLButtonUp(XTP_REPORTRECORDITEM_CLICKARGS* pClickArgs) { UNREFERENCED_PARAMETER(pClickArgs); }
  365. //-----------------------------------------------------------------------
  366. // Summary:
  367. //     Notifies the item control that mouse cursor has entered the item controls's area.
  368. // Parameters:
  369. //     nFlags - additional flags.
  370. //     point  - mouse point.
  371. // Remarks:
  372. //     Usually this function is called by ReportRecordItem's OnMouseMove function
  373. //-----------------------------------------------------------------------
  374. virtual void OnMouseEnter(UINT nFlags, CPoint point) { UNREFERENCED_PARAMETER(nFlags); UNREFERENCED_PARAMETER(point); }
  375. //-----------------------------------------------------------------------
  376. // Summary:
  377. //     Notifies the item control that mouse cursor has left the item controls's area.
  378. // Parameters:
  379. //     nFlags - additional flags.
  380. //     point  - mouse point.
  381. // Remarks:
  382. //     Usually this function is called by ReportRecordItem's OnMouseMove function
  383. //-----------------------------------------------------------------------
  384. virtual void OnMouseLeave(UINT nFlags, CPoint point) { UNREFERENCED_PARAMETER(nFlags); UNREFERENCED_PARAMETER(point); }
  385. //-----------------------------------------------------------------------
  386. // Summary:
  387. //     Processes the move mouse event.
  388. // Parameters:
  389. //     nFlags - additional flags.
  390. //     point  - mouse point.
  391. // Remarks:
  392. //     Usually this function is called by ReportRecordItem's OnMouseMove function
  393. //-----------------------------------------------------------------------
  394. virtual void OnMouseMove(UINT nFlags, CPoint point) { UNREFERENCED_PARAMETER(nFlags); UNREFERENCED_PARAMETER(point); }
  395. protected:
  396. int m_nType;                                  // Control type. See XTPReportItemControlType for details.
  397. int m_nIndex;                                 // Control index.
  398. CString m_strCaption;                         // Control caption.
  399. CFont m_fontCaption;                          // Control caption font.
  400. COLORREF m_clrCaption;                        // Control caption color.
  401. CSize m_sizeControl;                          // Control size. If size is (<=0, <=0), the control occupies entire cell.
  402. CRect m_rcControl;                            // Control rectangle.
  403. UINT m_unFlags;                               // Control flags.
  404. XTPReportItemControlAlignment m_Alignment;    // Control alignment. See XTPReportItemControlAlignment for details.
  405. BOOL m_bEnabled;                              // Control enable flag.
  406. int m_nState;                                 // Control state. Depends on control type.
  407. BOOL m_bThemed;                               // TRUE if control is themed, FALSE otherwise.
  408. CMap<int, int, int, int> m_mapIcon;           // Control icon map.
  409. friend class CXTPReportRecordItemControls;
  410. friend class CXTPReportRecordItemButton;
  411. friend class CXTPReportPaintManager;
  412. };
  413. //===========================================================================
  414. // Summary:
  415. //     This Class represents an item button and inherits basic functionality
  416. //     from CXTPReportRecordItemControl class.
  417. //     You create a button simply by calling a constructor with one
  418. //     parameter - text string.
  419. // See Also: CXTPReportRecordItemControl
  420. //===========================================================================
  421. class _XTP_EXT_CLASS CXTPReportRecordItemButton : public CXTPReportRecordItemControl
  422. {
  423. DECLARE_SERIAL(CXTPReportRecordItemButton)
  424. public:
  425. //-----------------------------------------------------------------------
  426. // Summary:
  427. //     Creates an item button.
  428. // Parameters:
  429. //     szCaption - The button caption.
  430. //-----------------------------------------------------------------------
  431. CXTPReportRecordItemButton(LPCTSTR szCaption = _T(""));
  432. //-----------------------------------------------------------------------
  433. // Summary:
  434. //     Call this member function to Store/Load a report item control
  435. //     using the specified data object.
  436. // Parameters:
  437. //     pPX - Source or destination CXTPPropExchange data object reference.
  438. //-----------------------------------------------------------------------
  439. virtual void DoPropExchange(CXTPPropExchange* pPX);
  440. //-----------------------------------------------------------------------
  441. // Summary:
  442. //     Processes mouse left button down clicks.
  443. // Parameters:
  444. //     pClickArgs - structure which contains mouse click arguments.
  445. // Remarks:
  446. //     Usually this function is called by ReportRecordItem's OnLButtonDown function
  447. // See Also: XTP_REPORTRECORDITEM_CLICKARGS
  448. //-----------------------------------------------------------------------
  449. virtual void OnLButtonDown(XTP_REPORTRECORDITEM_CLICKARGS* pClickArgs);
  450. //-----------------------------------------------------------------------
  451. // Summary:
  452. //     Processes mouse left button up clicks.
  453. // Parameters:
  454. //     pClickArgs - structure which contains mouse click arguments
  455. // Remarks:
  456. //     Usually this function is called by ReportRecordItem's OnLButtonUp function
  457. // See Also: XTP_REPORTRECORDITEM_CLICKARGS
  458. //-----------------------------------------------------------------------
  459. virtual void OnLButtonUp(XTP_REPORTRECORDITEM_CLICKARGS* pClickArgs);
  460. //-----------------------------------------------------------------------
  461. // Summary:
  462. //     Notifies the item control that mouse cursor has entered the item controls's area.
  463. // Parameters:
  464. //     nFlags - additional flags.
  465. //     point  - mouse point.
  466. // Remarks:
  467. //     Usually this function is called by ReportRecordItem's OnMouseMove function
  468. //-----------------------------------------------------------------------
  469. virtual void OnMouseEnter(UINT nFlags, CPoint point);
  470. //-----------------------------------------------------------------------
  471. // Summary:
  472. //     Notifies the item control that mouse cursor has left the item controls's area.
  473. // Parameters:
  474. //     nFlags - additional flags.
  475. //     point  - mouse point.
  476. // Remarks:
  477. //     Usually this function is called by ReportRecordItem's OnMouseMove function
  478. //-----------------------------------------------------------------------
  479. virtual void OnMouseLeave(UINT nFlags, CPoint point);
  480. //-----------------------------------------------------------------------
  481. // Summary:
  482. //     Processes the move mouse event.
  483. // Parameters:
  484. //     nFlags - additional flags.
  485. //     point  - mouse point.
  486. // Remarks:
  487. //     Usually this function is called by ReportRecordItem's OnMouseMove function
  488. //-----------------------------------------------------------------------
  489. virtual void OnMouseMove(UINT nFlags, CPoint point);
  490. protected:
  491. int m_nSavedState;                            // Button state when the mouse cursor leaves the button area.
  492. };
  493. //===========================================================================
  494. // Summary:
  495. //      This typedef used to declare a base class for CXTPReportRecordItemControls.
  496. //===========================================================================
  497. typedef CXTPArrayT<CXTPReportRecordItemControl*, CXTPReportRecordItemControl*, LPDISPATCH> CXTPReportRecordItemControls_base;
  498. //===========================================================================
  499. // Summary:
  500. //     This class represents inplace controls of the single item
  501. //===========================================================================
  502. //===========================================================================
  503. // Summary:
  504. //      This class represents array of pointers to CXTPReportRecordItemControl objects.
  505. //      InternalRelease is called for each item in the array destructor.
  506. //      Also serialization for array items is provided (see DoPropExchange method).
  507. //===========================================================================
  508. class _XTP_EXT_CLASS CXTPReportRecordItemControls : public CXTPReportRecordItemControls_base
  509. //class _XTP_EXT_CLASS CXTPReportRecordItemControls : public CXTPHeapObjectT<CXTPReportRecordItemControls_base, CXTPReportDataAllocator>
  510. {
  511. //{{AFX_CODEJOCK_PRIVATE
  512. DECLARE_DYNAMIC(CXTPReportRecordItemControls)
  513. typedef CXTPReportRecordItemControls_base TBase;
  514. //}}AFX_CODEJOCK_PRIVATE
  515. public:
  516. //-------------------------------------------------------------------------
  517. // Summary:
  518. //     Constructs a CXTPReportRecordItemControls object.
  519. // Parameters:
  520. //     pRecordItem - pointer to parent record item.
  521. //-------------------------------------------------------------------------
  522. CXTPReportRecordItemControls();
  523. CXTPReportRecordItemControls(CXTPReportRecordItem* pRecordItem);
  524. //-------------------------------------------------------------------------
  525. // Summary:
  526. //     Destroys a CXTPReportRecordItemControls object, handles
  527. //     cleanup and deallocation
  528. //-------------------------------------------------------------------------
  529. ~CXTPReportRecordItemControls();
  530. //-----------------------------------------------------------------------
  531. // Summary:
  532. //     Call this member function to Store/Load a report item controls
  533. //     using the specified data object.
  534. // Parameters:
  535. //     pPX - Source or destination CXTPPropExchange data object reference.
  536. //-----------------------------------------------------------------------
  537. virtual void DoPropExchange(CXTPPropExchange* pPX);
  538. public:
  539. //-----------------------------------------------------------------------
  540. // Summary:
  541. //     Adds new control to control list.
  542. // Parameters:
  543. //     nType    - Type of the control to be added.
  544. //     pControl - Pointer to the control to be added.
  545. //-----------------------------------------------------------------------
  546. CXTPReportRecordItemControl* AddControl(int nType, int nIndex = -1);
  547. CXTPReportRecordItemControl* AddControl(CXTPReportRecordItemControl* pControl, int nIndex = -1);
  548. //-------------------------------------------------------------------------
  549. // Summary:
  550. //     Call this member to remove all controls of the CXTPReportRecordItemControls.
  551. //-------------------------------------------------------------------------
  552. //void RemoveControls();
  553. virtual void RemoveAll();
  554. virtual void RemoveAt(int nIndex);
  555. virtual void RefreshIndexes(int nStartFrom = 0);
  556. virtual void CopyFrom(CXTPReportRecordItemControls* pSrc);
  557. public:
  558. CXTPReportRecordItem* m_pRecordItem;                                              // pointer to parent record item.
  559. };
  560. //===========================================================================
  561. // Summary:
  562. //     This Class represents an item control hook window.
  563. //     An instance of this window is created when the user presses the left mouse button on an item control.
  564. //     Further all mouse input goes to this window until the use releases the left mouse button.
  565. //     The window hooks mouse events and redirects them to the report record item.
  566. // See Also: CXTPReportRecordItem, CXTPReportRecordItemControl
  567. //===========================================================================
  568. class CXTPReportRecordItemControlHookWnd : public CWnd
  569. {
  570. public:
  571. CXTPReportRecordItemControlHookWnd(XTP_REPORTRECORDITEM_CLICKARGS* pClickArgs)
  572. {
  573. m_ClickArgs = *pClickArgs;
  574. }
  575. protected:
  576. //{{AFX_CODEJOCK_PRIVATE
  577. DECLARE_MESSAGE_MAP()
  578. //{{AFX_VIRTUAL(CXTPReportRecordItemControlHookWnd)
  579. //{{AFX_VIRTUAL(CXTPReportRecordItemControlHookWnd)
  580. //{{AFX_MSG(CXTPReportRecordItemControlHookWnd)
  581. afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
  582. afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
  583. afx_msg void OnMouseMove(UINT nFlags, CPoint point);
  584. //}}AFX_MSG
  585. //}}AFX_CODEJOCK_PRIVATE
  586. XTP_REPORTRECORDITEM_CLICKARGS m_ClickArgs;
  587. };
  588. //////////////////////////////////////////////////////////////////////////
  589. AFX_INLINE void CXTPReportRecordItemControl::SetCaption(LPCTSTR szCaption) {
  590. m_strCaption = szCaption;
  591. }
  592. AFX_INLINE CString CXTPReportRecordItemControl::GetCaption() {
  593. return m_strCaption;
  594. }
  595. AFX_INLINE int CXTPReportRecordItemControl::GetType() {
  596. return m_nType;
  597. }
  598. AFX_INLINE int CXTPReportRecordItemControl::GetIndex() {
  599. return m_nIndex;
  600. }
  601. AFX_INLINE CFont* CXTPReportRecordItemControl::GetFont() {
  602. return &m_fontCaption;
  603. }
  604. AFX_INLINE COLORREF CXTPReportRecordItemControl::GetCaptionColor() {
  605. return m_clrCaption;
  606. }
  607. AFX_INLINE void CXTPReportRecordItemControl::SetCaptionColor(COLORREF clrCaption) {
  608. m_clrCaption = clrCaption;
  609. }
  610. AFX_INLINE CSize CXTPReportRecordItemControl::GetSize() {
  611. return m_sizeControl;
  612. }
  613. AFX_INLINE void CXTPReportRecordItemControl::SetSize(CSize sizeControl) {
  614. m_sizeControl = sizeControl;
  615. }
  616. AFX_INLINE int CXTPReportRecordItemControl::GetWidth() {
  617. return m_sizeControl.cx;
  618. }
  619. AFX_INLINE void CXTPReportRecordItemControl::SetWidth(int nWidth) {
  620. m_sizeControl.cx = nWidth;
  621. }
  622. AFX_INLINE int CXTPReportRecordItemControl::GetHeight() {
  623. return m_sizeControl.cy;
  624. }
  625. AFX_INLINE void CXTPReportRecordItemControl::SetHeight(int nHeight) {
  626. m_sizeControl.cy = nHeight;
  627. }
  628. AFX_INLINE CRect CXTPReportRecordItemControl::GetRect() {
  629. return m_rcControl;
  630. }
  631. AFX_INLINE void CXTPReportRecordItemControl::SetFlags(UINT unFlags) {
  632. m_unFlags = unFlags;
  633. }
  634. AFX_INLINE UINT CXTPReportRecordItemControl::GetFlags() {
  635. return m_unFlags;
  636. }
  637. AFX_INLINE int CXTPReportRecordItemControl::GetAlignment() {
  638. return m_Alignment;
  639. }
  640. AFX_INLINE void CXTPReportRecordItemControl::SetAlignment(int nAlignment) {
  641. m_Alignment = (XTPReportItemControlAlignment)nAlignment;
  642. }
  643. AFX_INLINE BOOL CXTPReportRecordItemControl::GetEnable() {
  644. return m_bEnabled;
  645. }
  646. AFX_INLINE void CXTPReportRecordItemControl::SetEnable(BOOL bEnable) {
  647. m_bEnabled = bEnable;
  648. }
  649. AFX_INLINE int CXTPReportRecordItemControl::GetState() {
  650. return m_nState;
  651. }
  652. AFX_INLINE void CXTPReportRecordItemControl::SetThemed(BOOL bThemed) {
  653. m_bThemed = bThemed;
  654. }
  655. AFX_INLINE BOOL CXTPReportRecordItemControl::GetThemed() {
  656. return m_bThemed;
  657. }
  658. AFX_INLINE void CXTPReportRecordItemControl::SetIconIndex(int nState, int nIconIndex) {
  659. m_mapIcon.SetAt(nState, nIconIndex);
  660. }
  661. AFX_INLINE void CXTPReportRecordItemControl::SetRect(CRect rcControl) {
  662. m_rcControl = rcControl;
  663. }
  664. #endif //#if !defined(__XTPREPORTRECORDITEMCONTROLS_H__)