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

对话框与窗口

开发平台:

Visual C++

  1. // XTPControlEdit.h : interface for the CXTPControlEdit class.
  2. //
  3. // This file is a part of the XTREME COMMANDBARS MFC class library.
  4. // (c)1998-2008 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(__XTPCONTOLEDIT_H__)
  22. #define __XTPCONTOLEDIT_H__
  23. //}}AFX_CODEJOCK_PRIVATE
  24. #if _MSC_VER >= 1000
  25. #pragma once
  26. #endif // _MSC_VER >= 1000
  27. #include "XTPControl.h"
  28. #include "XTPControlComboBox.h"
  29. class CXTPControlEdit;
  30. const UINT XTP_FN_SPINUP     = 0x1010;
  31. const UINT XTP_FN_SPINDOWN   = 0x1011;
  32. struct NMXTPUPDOWN : public NMXTPCONTROL
  33. {
  34. int   iDelta;
  35. };
  36. //===========================================================================
  37. // Summary:
  38. //     Inplace Edit control of CXTPControlEdit.
  39. //===========================================================================
  40. class _XTP_EXT_CLASS CXTPControlEditCtrl : public CXTPEdit
  41. {
  42. public:
  43. CXTPControlEditCtrl();
  44. //-----------------------------------------------------------------------
  45. // Summary:
  46. //     Retrieves the parent CXTPControlEdit object.
  47. // Returns:
  48. //     Pointer to parent CXTPControlEdit.
  49. //-----------------------------------------------------------------------
  50. CXTPControlEdit* GetControlEdit() const;
  51. protected:
  52. //-------------------------------------------------------------------------
  53. // Summary:
  54. //     This method is called to refresh char format of edit control
  55. //-------------------------------------------------------------------------
  56. void UpdateCharFormat();
  57. protected:
  58. //{{AFX_CODEJOCK_PRIVATE
  59. DECLARE_MESSAGE_MAP()
  60. //{{AFX_MSG(CXTPControlEditCtrl)
  61. afx_msg void OnSetFocus(CWnd* pOldWnd);
  62. afx_msg void OnKillFocus(CWnd* pNewWnd);
  63. afx_msg void OnMouseMove(UINT nFlags, CPoint point);
  64. afx_msg void OnDestroy();
  65. afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
  66. afx_msg void OnRButtonDown(UINT nFlags, CPoint point);
  67. afx_msg void OnContextMenu(CWnd* pWnd, CPoint point);
  68. afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
  69. BOOL OnWndMsg(UINT message, WPARAM wParam, LPARAM lParam, LRESULT* pResult);
  70. afx_msg LRESULT OnWindowFromPoint(WPARAM, LPARAM);
  71. afx_msg void OnEditChanged();
  72. //}}AFX_MSG
  73. //}}AFX_CODEJOCK_PRIVATE
  74. protected:
  75. CXTPControlEdit* m_pControl;            // Parent edit control
  76. private:
  77. friend class CXTPControlEdit;
  78. };
  79. //===========================================================================
  80. // Summary:
  81. //     CXTPControlEdit is a CXTPControl derived class.
  82. //     It represents an edit control.
  83. //===========================================================================
  84. class _XTP_EXT_CLASS CXTPControlEdit : public CXTPControl
  85. {
  86. public:
  87. //-----------------------------------------------------------------------
  88. // Summary:
  89. //     Constructs a CXTPControlEdit object
  90. //-----------------------------------------------------------------------
  91. CXTPControlEdit();
  92. //-----------------------------------------------------------------------
  93. // Summary:
  94. //     Destroys a CXTPControlEdit object, handles cleanup and deallocation
  95. //-----------------------------------------------------------------------
  96. virtual ~CXTPControlEdit();
  97. public:
  98. //-----------------------------------------------------------------------
  99. // Summary:
  100. //     This method creates an edit control. Override it to use inherited
  101. //     edit control.
  102. // Returns:
  103. //     A pointer to the newly created CXTPControlEditCtrl.
  104. //-----------------------------------------------------------------------
  105. virtual CXTPControlEditCtrl* CreateEditControl();
  106. public:
  107. //-----------------------------------------------------------------------
  108. // Summary:
  109. //     Call this member to get the edit control.
  110. // Returns:
  111. //     A pointer to the CEdit control.
  112. //-----------------------------------------------------------------------
  113. CEdit* GetEditCtrl() const;
  114. //-----------------------------------------------------------------------
  115. // Summary:
  116. //     Call this member to get the edit control text.
  117. // Returns:
  118. //     The Edit control text.
  119. //-----------------------------------------------------------------------
  120. CString GetEditText() const;
  121. //-----------------------------------------------------------------------
  122. // Summary:
  123. //     Call this member to set the edit control text.
  124. // Parameters:
  125. //     strText - New text of the edit control.
  126. //-----------------------------------------------------------------------
  127. void SetEditText(const CString&  strText);
  128. //-----------------------------------------------------------------------
  129. // Summary:
  130. //     Call this member to set grayed-out text displayed in the edit control
  131. //     that displayed a helpful description of what the control is used for.
  132. // Parameters:
  133. //     lpszEditHint - Edit hint to be set
  134. // Example:
  135. //     <code>pEdit->SetEditHint(_T("Click to find a contact");</code>
  136. // See Also: GetEditHint
  137. //-----------------------------------------------------------------------
  138. void SetEditHint(LPCTSTR lpszEditHint);
  139. //-----------------------------------------------------------------------
  140. // Summary:
  141. //     Call this member to get grayed-out text displayed in the edit control
  142. //     that displayed a helpful description of what the control is used for.
  143. // Returns:
  144. //     Edit hint of the control
  145. // See Also: SetEditHint
  146. //-----------------------------------------------------------------------
  147. CString GetEditHint() const;
  148. //-----------------------------------------------------------------------
  149. // Summary:
  150. //     This member function enables or disables shell auto completion.
  151. // Parameters:
  152. //     dwFlags - Flags that will be passed to SHAutoComplete function.
  153. // Remarks:
  154. //     Flags can be combined by using the bitwise
  155. //     OR (|) operator. It can be one or more of the following:
  156. //     * <b>SHACF_FILESYSTEM</b> This includes the File System as well as the rest of the shell (DesktopMy ComputerControl Panel)
  157. //     * <b>SHACF_URLALL</b>  Include the URL's in the users History and Recently Used lists. Equivalent to SHACF_URLHISTORY | SHACF_URLMRU.
  158. //     * <b>HACF_URLHISTORY</b> URLs in the User's History
  159. //     * <b>SHACF_URLMRU</b> URLs in the User's Recently Used list.
  160. //     * <b>SHACF_FILESYS_ONLY</b> Include only the file system. Do not include virtual folders such as Desktop or Control Panel.
  161. // ---------------------------------------------------------------------------
  162. void EnableShellAutoComplete(DWORD dwFlags = SHACF_FILESYSTEM | SHACF_URLALL);
  163. //-----------------------------------------------------------------------
  164. // Summary:
  165. //     Call this member to show the label of the control.
  166. // Parameters:
  167. //     bShow - TRUE to show the label.
  168. //-----------------------------------------------------------------------
  169. void ShowLabel(BOOL bShow);
  170. //-----------------------------------------------------------------------
  171. // Summary:
  172. //     Call this member to determine if the caption of the control is visible
  173. // Returns:
  174. //     TRUE if the caption is visible.
  175. //-----------------------------------------------------------------------
  176. virtual BOOL IsCaptionVisible() const;
  177. //-----------------------------------------------------------------------
  178. // Summary:
  179. //     Determines if icon is visible for edit control
  180. // Returns:
  181. //     TRUE if control has icon
  182. //-----------------------------------------------------------------------
  183. BOOL IsImageVisible() const;
  184. //-----------------------------------------------------------------------
  185. // Summary:
  186. //     Call this member to determine if the control has a visible label.
  187. // Returns:
  188. //     TRUE if the control has a visible label ; otherwise returns FALSE
  189. //-----------------------------------------------------------------------
  190. BOOL IsLabeled() const;
  191. //-----------------------------------------------------------------------
  192. // Summary:
  193. //     Call this method to show spin buttons for edit control
  194. // Parameters:
  195. //     bShow - TRUE to show spin buttons
  196. // See Also: IsSpinButtonsVisible
  197. //-----------------------------------------------------------------------
  198. void ShowSpinButtons(BOOL bShow = TRUE);
  199. //-----------------------------------------------------------------------
  200. // Summary:
  201. //     Determines if edit control has spin buttons
  202. // Returns:
  203. //     TRUE if control has spin buttons
  204. // See Also: ShowSpinButtons
  205. //-----------------------------------------------------------------------
  206. BOOL IsSpinButtonsVisible() const;
  207. //-----------------------------------------------------------------------
  208. // Summary:
  209. //     Reads or writes this object from or to an archive.
  210. // Parameters:
  211. //     pPX - A CXTPPropExchange object to serialize to or from.
  212. //----------------------------------------------------------------------
  213. void DoPropExchange(CXTPPropExchange* pPX);
  214. //-----------------------------------------------------------------------
  215. // Summary:
  216. //     Call this member to enable or disable the control.
  217. //     If the control does not have flags xtpFlagManualUpdate, you must call
  218. //     the Enable member of CCmdUI in the ON_UPDATE_COMMAND_UI handler.
  219. // Parameters:
  220. //     bEnabled - TRUE if the control is enabled.
  221. // See Also: GetEnabled, SetChecked
  222. //-----------------------------------------------------------------------
  223. void SetEnabled(BOOL bEnabled);
  224. //-----------------------------------------------------------------------
  225. // Summary:
  226. //     Call this member to get the style of edit control.
  227. // Returns:
  228. //     The style of the edit control.
  229. // See Also: SetEditStyle
  230. //-----------------------------------------------------------------------
  231. DWORD GetEditStyle() const;
  232. //-----------------------------------------------------------------------
  233. // Summary:
  234. //     Call this member to set the style of edit control
  235. // Parameters:
  236. //     dwStyle - The style to be set
  237. // See Also: GetEditStyle
  238. //-----------------------------------------------------------------------
  239. void SetEditStyle(DWORD dwStyle);
  240. //-----------------------------------------------------------------------
  241. // Summary:
  242. //     Calls this function to set the read-only state of an edit control.
  243. // Parameters:
  244. //     bReadOnly - Specifies whether to set or remove the read-only state of the edit
  245. //                 control. A value of TRUE sets the state to read-only;
  246. //                 a value of FALSE sets the state to read/write.
  247. // See Also: GetReadOnly, SetEnabled
  248. //-----------------------------------------------------------------------
  249. void SetReadOnly(BOOL bReadOnly = TRUE);
  250. //-----------------------------------------------------------------------
  251. // Summary:
  252. //     Retrieves a boolean value indicating whether the edit control is read-only.
  253. // Returns:
  254. //     Returns TRUE if the control is read-only; otherwise, returns FALSE.
  255. // See Also: SetReadOnly
  256. //-----------------------------------------------------------------------
  257. BOOL GetReadOnly() const;
  258. //-----------------------------------------------------------------------
  259. // Summary:
  260. //     Call this member to compare controls.
  261. // Parameters:
  262. //     pOther - The control need compare with.
  263. // Returns:
  264. //     TRUE if the controls are identical.
  265. //-----------------------------------------------------------------------
  266. virtual BOOL Compare(CXTPControl* pOther);
  267. //-----------------------------------------------------------------------
  268. // Summary:
  269. //     Call this method to get with of label.
  270. // Returns:
  271. //     Width of label of edit control.
  272. // See Also: SetLabelWidth, ShowLabel, IsLabeled
  273. //-----------------------------------------------------------------------
  274. int GetLabelWidth() const;
  275. //-----------------------------------------------------------------------
  276. // Summary:
  277. //     This method is called to set width of the label.
  278. // Parameters:
  279. //     nLabelWidth - Width of label to be set
  280. // See Also: GetLabelWidth, ShowLabel, IsLabeled
  281. //-----------------------------------------------------------------------
  282. void SetLabelWidth(int nLabelWidth);
  283. //-----------------------------------------------------------------------
  284. // Summary:
  285. //     Call this method to determine if edit control has focus
  286. //-----------------------------------------------------------------------
  287. BOOL HasFocus() const;
  288. //-----------------------------------------------------------------------
  289. // Summary:
  290. //     Call this member to set focus to the control.
  291. // Parameters:
  292. //     bFocused - TRUE to set focus
  293. //-----------------------------------------------------------------------
  294. virtual void SetFocused(BOOL bFocused);
  295. //-----------------------------------------------------------------------
  296. // Summary:
  297. //     Call this member to get the focused state of the control.
  298. // Returns:
  299. //     TRUE if the control has focus; otherwise FALSE.
  300. //-----------------------------------------------------------------------
  301. virtual BOOL IsFocused() const;
  302. //-----------------------------------------------------------------------
  303. // Summary:
  304. //     Returns spin buttons bounding rectangle.
  305. //-----------------------------------------------------------------------
  306. CRect GetSpinButtonsRect() const;
  307. //-----------------------------------------------------------------------
  308. // Summary:
  309. //     This method is called to hide the control.
  310. // Parameters:
  311. //     dwFlags - Reasons to hide.
  312. // See Also: XTPControlHideFlags
  313. //-----------------------------------------------------------------------
  314. virtual void SetHideFlags(DWORD dwFlags);
  315. //-----------------------------------------------------------------------
  316. // Summary:
  317. //     This method is called when action property was changed
  318. // Parameters:
  319. //     nProperty - Property of the action
  320. // See Also: OnActionChanging
  321. //-----------------------------------------------------------------------
  322. virtual void OnActionChanged(int nProperty);
  323. //-----------------------------------------------------------------------
  324. // Summary:
  325. //     This method is called when action property is about to be changed
  326. // Parameters:
  327. //     nProperty - Property of the action
  328. // See Also: OnActionChanged
  329. //-----------------------------------------------------------------------
  330. virtual void OnActionChanging(int nProperty);
  331. //----------------------------------------------------------------------
  332. // Summary:
  333. //     This method draw text of control
  334. // Parameters:
  335. //     pDC    - Pointer to a valid device context
  336. //     rcText - Rectangle to draw.
  337. //----------------------------------------------------------------------
  338. virtual void DrawEditText(CDC* pDC, CRect rcText);
  339. protected:
  340. //----------------------------------------------------------------------
  341. // Summary:
  342. //     This method is called to check if control accept focus
  343. // See Also: SetFocused
  344. //----------------------------------------------------------------------
  345. virtual BOOL IsFocusable() const;
  346. //-----------------------------------------------------------------------
  347. // Summary:
  348. //     Called after the mouse hovers over the control.
  349. //-----------------------------------------------------------------------
  350. virtual void OnMouseHover();
  351. //----------------------------------------------------------------------
  352. // Summary:
  353. //     This member is called when the mouse cursor moves.
  354. // Parameters:
  355. //     point - Specifies the x- and y-coordinate of the cursor.
  356. //----------------------------------------------------------------------
  357. virtual void OnMouseMove(CPoint point);
  358. //-----------------------------------------------------------------------
  359. // Summary:
  360. //     This method is called, then the edit control gets the focus.
  361. // Parameters:
  362. //     pOldWnd - Points to a CWnd object
  363. //-----------------------------------------------------------------------
  364. virtual void OnSetFocus(CWnd* pOldWnd);
  365. //-----------------------------------------------------------------------
  366. // Summary:
  367. //     This method is called, then the edit control loses the focus.
  368. //-----------------------------------------------------------------------
  369. virtual void OnKillFocus();
  370. //-----------------------------------------------------------------------
  371. // Summary:
  372. //     This method is called to get real rect of edit control of CEdit
  373. // Parameters:
  374. //     rcControl - Rectangle of Edit area.
  375. //-----------------------------------------------------------------------
  376. virtual void DeflateEditRect(CRect& rcControl);
  377. //-----------------------------------------------------------------------
  378. // Summary:
  379. //     This method is called when the control becomes selected.
  380. // Parameters:
  381. //     bSelected - TRUE if the control becomes selected.
  382. // Returns:
  383. //     TRUE if successful; otherwise returns FALSE
  384. //-----------------------------------------------------------------------
  385. BOOL OnSetSelected(int bSelected);
  386. //-----------------------------------------------------------------------
  387. // Summary:
  388. //     Call this member to set the bounding rectangle of the control.
  389. // Parameters:
  390. //     rcControl - Bounding rectangle of the control.
  391. //-----------------------------------------------------------------------
  392. void SetRect(CRect rcControl);
  393. //-----------------------------------------------------------------------
  394. // Summary:
  395. //     This method is called then edit control text was changed
  396. //-----------------------------------------------------------------------
  397. virtual void OnEditChanged();
  398. //-----------------------------------------------------------------------
  399. // Summary:
  400. //     This method is called to get default char format of rich edit text
  401. //-----------------------------------------------------------------------
  402. virtual CHARFORMAT2 GetDefaultCharFormat();
  403. //-----------------------------------------------------------------------
  404. // Summary:
  405. //     This method is called when the user clicks the control.
  406. // Parameters:
  407. //     bKeyboard - TRUE if the control is selected using the keyboard.
  408. //     pt - Mouse cursor position.
  409. //-----------------------------------------------------------------------
  410. void OnClick(BOOL bKeyboard = FALSE, CPoint pt = CPoint(0, 0));
  411. //----------------------------------------------------------------------
  412. // Summary:
  413. //     This method is called when the user activate control using its underline.
  414. //----------------------------------------------------------------------
  415. virtual void OnUnderlineActivate();
  416. //-----------------------------------------------------------------------
  417. // Summary:
  418. //     This method is called to copy the control.
  419. // Parameters:
  420. //     pControl - Points to a source CXTPControl object
  421. //     bRecursive - TRUE to copy recursively.
  422. //-----------------------------------------------------------------------
  423. void Copy(CXTPControl* pControl, BOOL bRecursive = FALSE);
  424. //-----------------------------------------------------------------------
  425. // Summary:
  426. //     This method is called when a non-system key is pressed.
  427. // Parameters:
  428. //     nChar - Specifies the virtual key code of the given key.
  429. //     lParam   - Specifies additional message-dependent information.
  430. // Returns:
  431. //     TRUE if key handled, otherwise returns FALSE
  432. //-----------------------------------------------------------------------
  433. BOOL OnHookKeyDown(UINT nChar, LPARAM lParam);
  434. //-----------------------------------------------------------------------
  435. // Summary:
  436. //     This method is called before recalculating the parent command
  437. //     bar size to calculate the dimensions of the control.
  438. // Parameters:
  439. //     dwMode - Flags used to determine the height and width of the
  440. //              dynamic command bar. See Remarks section for a list of
  441. //              values.
  442. // Remarks:
  443. //     The following predefined flags are used to determine the height and
  444. //     width of the dynamic command bar. Use the bitwise-OR (|) operator to
  445. //     combine the flags.<p/>
  446. //
  447. //     * <b>LM_STRETCH</b> Indicates whether the command bar should be
  448. //                stretched to the size of the frame. Set if the bar is
  449. //                not a docking bar (not available for docking). Not set
  450. //                when the bar is docked or floating (available for
  451. //                docking). If set, LM_STRETCH returns dimensions based
  452. //                on the LM_HORZ state. LM_STRETCH works similarly to
  453. //                the the bStretch parameter used in CalcFixedLayout;
  454. //                see that member function for more information about
  455. //                the relationship between stretching and orientation.
  456. //     * <b>LM_HORZ</b> Indicates that the bar is horizontally or
  457. //                vertically oriented. Set if the bar is horizontally
  458. //                oriented, and if it is vertically oriented, it is not
  459. //                set. LM_HORZ works similarly to the the bHorz
  460. //                parameter used in CalcFixedLayout; see that member
  461. //                function for more information about the relationship
  462. //                between stretching and orientation.
  463. //     * <b>LM_MRUWIDTH</b> Most Recently Used Dynamic Width. Uses the
  464. //                remembered most recently used width.
  465. //     * <b>LM_HORZDOCK</b> Horizontal Docked Dimensions. Returns the
  466. //                dynamic size with the largest width.
  467. //     * <b>LM_VERTDOCK</b> Vertical Docked Dimensions. Returns the dynamic
  468. //                size with the largest height.
  469. //     * <b>LM_COMMIT</b> Resets LM_MRUWIDTH to current width of
  470. //                floating command bar.
  471. //
  472. //     The framework calls this member function to calculate the dimensions
  473. //     of a dynamic command bar.<p/>
  474. //
  475. //     Override this member function to provide your own layout in classes
  476. //     you derive from CXTPControl. XTP classes derived from CXTPControl,
  477. //     such as CXTPControlComboBox, override this member function to provide
  478. //     their own implementation.
  479. // See Also:
  480. //     CXTPControlComboBox, CXTPControlCustom, CXTPControl,
  481. //     CXTPControlWindowList, CXTPControlWorkspaceActions, CXTPControlToolbars,
  482. //     CXTPControlOleItems, CXTPControlRecentFileList, CXTPControlSelector,
  483. //     CXTPControlListBox
  484. //-----------------------------------------------------------------------
  485. virtual void OnCalcDynamicSize(DWORD dwMode);
  486. //-----------------------------------------------------------------------
  487. // Summary:
  488. //     This method is called to assign a parent command bar object.
  489. // Parameters:
  490. //     pParent - Points to a CXTPCommandBar object
  491. //-----------------------------------------------------------------------
  492. void SetParent(CXTPCommandBar* pParent);
  493. //-----------------------------------------------------------------------
  494. // Summary:
  495. //     This member checks if the user can resize control.
  496. // Returns:
  497. //     TRUE if resize available.
  498. //-----------------------------------------------------------------------
  499. virtual BOOL IsCustomizeResizeAllow() const;
  500. //-----------------------------------------------------------------------
  501. // Summary:
  502. //     This member returns the minimum width that the edit control
  503. //     can be sized by the user while in customization mode.
  504. // Returns:
  505. //     Width of label + 10 if the edit control's label is visible,
  506. //     if label is hidden, then it returns 10.
  507. //-----------------------------------------------------------------------
  508. virtual int GetCustomizeMinWidth() const;
  509. //-------------------------------------------------------------------------
  510. // Summary:
  511. //     This method is called when control was removed from parent controls collection
  512. //-------------------------------------------------------------------------
  513. virtual void OnRemoved();
  514. protected:
  515. //{{AFX_CODEJOCK_PRIVATE
  516. void _SetEditText(const CString& strText);
  517. CString _GetEditText() const;
  518. void TrackSpinButton(CPoint pt);
  519. virtual void NotifySpinChanged(int increment, int direction);
  520. void OnThemeChanged();
  521. void ShowHideEditControl();
  522. //}}AFX_CODEJOCK_PRIVATE
  523. protected:
  524. CXTPControlEditCtrl* m_pEdit;       // Inplace edit control.
  525. BOOL m_bLabel;              // TRUE if label is visible.
  526. BOOL m_bReadOnly;           // TRUE if edit is readonly
  527. int m_nLabelWidth;          // Width of the label.
  528. BOOL m_bDelayReposition;    // Need to reposition control.
  529. BOOL m_bDelayDestroy;       // Need to reposition control.
  530. CString m_strEditHint;      // Edit hint of the controls
  531. BOOL m_bFocused;            // TRUE if edit has focus
  532. CString m_strLastText;      // Last entered text
  533. mutable CString m_strEditText;      // Edit text.
  534. mutable BOOL m_bEditChanged;        // TRUE if Edit Text was changed.
  535. CXTPControlComboBoxAutoCompleteWnd* m_pAutoCompleteWnd; // Auto complete window hook.
  536. DWORD m_dwShellAutoCompleteFlags;   // Shell auto complete flags.
  537. DWORD m_dwEditStyle;        // Edit style
  538. BOOL m_bShowSpinButtons;    // TRUE to show spsin buttons
  539. int m_nEditIconId;          // Edit Icon identifier
  540. public:
  541. DECLARE_XTP_CONTROL(CXTPControlEdit)
  542. friend class CXTPControlEditCtrl;
  543. };
  544. //////////////////////////////////////////////////////////////////////////
  545. AFX_INLINE CEdit* CXTPControlEdit::GetEditCtrl() const {
  546. return m_pEdit;
  547. }
  548. AFX_INLINE void CXTPControlEdit::ShowLabel(BOOL bShow) {
  549. SetStyle(bShow ? xtpButtonCaption : xtpButtonAutomatic);
  550. }
  551. AFX_INLINE BOOL CXTPControlEdit::IsLabeled() const {
  552. return IsCaptionVisible();
  553. }
  554. AFX_INLINE BOOL CXTPControlEdit::IsCustomizeResizeAllow() const {
  555. return TRUE;
  556. }
  557. AFX_INLINE int CXTPControlEdit::GetCustomizeMinWidth() const {
  558. return m_nLabelWidth + 10;
  559. }
  560. AFX_INLINE CXTPControlEdit* CXTPControlEditCtrl::GetControlEdit() const {
  561. return m_pControl;
  562. }
  563. AFX_INLINE int CXTPControlEdit::GetLabelWidth() const {
  564. return m_nLabelWidth;
  565. }
  566. AFX_INLINE void CXTPControlEdit::SetLabelWidth(int nLabelWidth) {
  567. if (m_nLabelWidth != nLabelWidth)
  568. {
  569. m_nLabelWidth = nLabelWidth;
  570. m_bDelayReposition = TRUE;
  571. }
  572. }
  573. AFX_INLINE void CXTPControlEdit::OnThemeChanged() {
  574. m_bDelayReposition = TRUE;
  575. }
  576. AFX_INLINE void CXTPControlEdit::ShowSpinButtons(BOOL bShow) {
  577. if (m_bShowSpinButtons != bShow) {m_bShowSpinButtons = bShow; m_bDelayReposition = TRUE; DelayLayoutParent();}
  578. }
  579. AFX_INLINE BOOL CXTPControlEdit::IsSpinButtonsVisible() const {
  580. return m_bShowSpinButtons;
  581. }
  582. #endif //#if !defined(__XTPCONTOLEDIT_H__)