ExtButton.h
上传用户:sesekoo
上传日期:2020-07-18
资源大小:21543k
文件大小:18k
源码类别:

界面编程

开发平台:

Visual C++

  1. // This is part of the Professional User Interface Suite library.
  2. // Copyright (C) 2001-2009 FOSS Software, Inc.
  3. // All rights reserved.
  4. //
  5. // http://www.prof-uis.com
  6. // mailto:support@prof-uis.com
  7. //
  8. // This source code can be used, modified and redistributed
  9. // under the terms of the license agreement that is included
  10. // in the Professional User Interface Suite package.
  11. //
  12. // Warranties and Disclaimers:
  13. // THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND
  14. // INCLUDING, BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY,
  15. // FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
  16. // IN NO EVENT WILL FOSS SOFTWARE INC. BE LIABLE FOR ANY DIRECT,
  17. // INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES,
  18. // INCLUDING DAMAGES FOR LOSS OF PROFITS, LOSS OR INACCURACY OF DATA,
  19. // INCURRED BY ANY PERSON FROM SUCH PERSON'S USAGE OF THIS SOFTWARE
  20. // EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
  21. #if (!defined __EXT_BUTTON_H)
  22. #define __EXT_BUTTON_H
  23. #if _MSC_VER >= 1000
  24. #pragma once
  25. #endif // _MSC_VER >= 1000
  26. #if (!defined __EXT_MFC_DEF_H)
  27. #include <ExtMfcDef.h>
  28. #endif // __EXT_MFC_DEF_H
  29. #if (!defined __EXT_MOUSECAPTURESINK_H)
  30. #include <../Src/ExtMouseCaptureSink.h>
  31. #endif
  32. #if (!defined __EXT_PAINT_MANAGER_H)
  33. #include <ExtPaintManager.h>
  34. #endif
  35. #if (!defined __EXT_CONTROLBAR_H)
  36. #include <ExtControlBar.h>
  37. #endif
  38. class CExtPopupMenuWnd;
  39. class CExtPopupMenuTipWnd;
  40. /////////////////////////////////////////////////////////////////////////////
  41. // CExtButton window
  42. class __PROF_UIS_API CExtButton
  43. : public CButton
  44. , public CExtMouseCaptureSink
  45. , public CExtAnimationSingleton
  46. {
  47. public:
  48. DECLARE_DYNCREATE( CExtButton );
  49. DECLARE_PROF_UIS_WINDOW_METHODS;
  50.     CExtButton();
  51. virtual ~CExtButton();
  52. CMenu m_menu;
  53. bool m_bNoRefToCmdMngr:1;
  54. DWORD m_dwMenuOpt; // TPMX_TOPALIGN is default
  55. UINT m_nMenuLeftAreaWidth; // 0 is default
  56. INT m_nAdvancedTipStyle; // CExtPopupMenuTipWnd::__ETS_RECTANGLE_NO_ICON
  57. virtual void _OnClick(
  58. bool bSelectAny,
  59. bool bSeparatedDropDownClicked
  60. );
  61. virtual bool _OnTrackPopup(
  62. bool bSelectAny
  63. );
  64. virtual bool _IsMenuAvail();
  65. void _CalcClientRects(
  66. CRect & rcMainArea,
  67. CRect & rcDropDown
  68. ) const;
  69. INT _HtMouseOnButton( const POINT & ptClient ) const; // 0 - not, 1-main area, 2-dropdown area
  70. INT _HtMouseOnButton() const; // 0 - not, 1-main area, 2-dropdown area
  71. virtual bool OnPutToPopupMenu( CExtPopupMenuWnd * pPopup );
  72. virtual bool _QuickActivationHandle(
  73. bool bCheckWindowState = true
  74. );
  75. virtual bool _QuickActivationCheck(
  76. DWORD dwChar,
  77. bool bCheckWindowState = true
  78. );
  79. bool m_bQuickActivationEnabled:1, m_bQuickActivationSeparatedDropDown:1;
  80. protected:
  81. bool m_bQuickActivationCancelNearest:1;
  82. public:
  83.     //{{AFX_VIRTUAL(CExtButton)
  84. public:
  85. virtual BOOL PreTranslateMessage(MSG* pMsg);
  86. protected:
  87. virtual void PreSubclassWindow();
  88. virtual LRESULT DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam);
  89. virtual LRESULT WindowProc(UINT message, WPARAM wParam, LPARAM lParam);
  90. virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);
  91. //}}AFX_VIRTUAL
  92. public:
  93. virtual void PmBridge_OnPaintManagerChanged(
  94. CExtPaintManager * pGlobalPM
  95. );
  96. virtual void AnimationSite_OnProgressShutdownTimer( UINT nTimerID );
  97. virtual HWND AnimationSite_GetSafeHWND() const;
  98. virtual const CExtAnimationParameters *
  99. AnimationClient_OnQueryAnimationParameters(
  100. INT eAPT // __EAPT_*** animation type
  101. ) const;
  102. virtual bool AnimationClient_CacheNextState(
  103. CDC & dc,
  104. const RECT & rcAcAnimationTarget,
  105. bool bAnimate,
  106. INT eAPT // __EAPT_*** animation type
  107. );
  108. // Implementation
  109. public:
  110. virtual BOOL GetDefault(
  111. bool bInitial = true
  112. ) const;
  113. virtual BOOL SupportsCommand() const;
  114. virtual BOOL SupportsCheck() const;
  115. virtual BOOL SupportsAutoCheck() const;
  116. virtual INT GetType() const;
  117. virtual BOOL Is3StateType() const;
  118. void SetTooltipText(
  119. int nId,
  120. BOOL bActivate =
  121. TRUE
  122. );
  123. void SetTooltipText(
  124. CExtSafeString * spText,
  125. BOOL bActivate = TRUE
  126. );
  127. void SetTooltipText(
  128. CExtSafeString & sText,
  129. BOOL bActivate = TRUE
  130. );
  131. void SetTooltipText(
  132. __EXT_MFC_SAFE_LPCTSTR sText,
  133. BOOL bActivate = TRUE
  134. );
  135. void ActivateTooltip(
  136. BOOL bEnable = TRUE
  137. );
  138. BOOL SetBtnCursor( 
  139. int nCursorId = -1 
  140. );
  141. BOOL GetSeparatedDropDown() const;
  142. void SetSeparatedDropDown(
  143. BOOL bSeparatedDropDown = TRUE
  144. );
  145. virtual BOOL GetAutoChangeID() const;
  146. virtual void SetAutoChangeID(
  147. BOOL bAutoChangeID = TRUE
  148. );
  149. virtual BOOL GetAutoChangeCmdIcon() const;
  150. virtual void SetAutoChangeCmdIcon(
  151. BOOL bAutoChangeCmdIcon = TRUE
  152. );
  153. virtual void SetFlat( BOOL bState = TRUE );
  154. virtual BOOL GetFlat() const;
  155. virtual BOOL GetDrawBorder() const;
  156. virtual void SetDrawBorder( BOOL bEnable = TRUE );
  157. virtual BOOL GetDrawFocusRect() const;
  158. virtual void SetDrawFocusRect( BOOL bEnable = TRUE );
  159. // for back compatibility
  160. void SetIcon(
  161. __EXT_MFC_SAFE_LPCTSTR sResourceIconInID,
  162. __EXT_MFC_SAFE_LPCTSTR sResourceIconOutID = NULL,
  163. __EXT_MFC_SAFE_LPCTSTR sResourceIconDisabledID = NULL,
  164. __EXT_MFC_SAFE_LPCTSTR sResourceIconPressedID = NULL,
  165. INT nWidth = 0,
  166. INT nHeight = 0
  167. );
  168. // for back compatibility
  169. void SetIcon(
  170. UINT nResourceIconInID,
  171. UINT nResourceIconOutID = 0,
  172. UINT nResourceIconDisabledID = 0,
  173. UINT nResourceIconPressedID = 0,
  174. INT nWidth = 0,
  175. INT nHeight = 0
  176. );
  177. // for back compatibility
  178. void SetIcon(
  179. HICON hIconIn,
  180. HICON hIconOut = NULL,
  181. HICON hIconDisabled = NULL,
  182. HICON hIconPressed = NULL
  183. );
  184. void SetTextColorDisabled( 
  185. COLORREF clrText 
  186. );
  187. void SetTextColorNormal( 
  188. COLORREF clrText 
  189. );
  190. void SetTextColorHover( 
  191. COLORREF clrText 
  192. );
  193. void SetTextColorPressed( 
  194. COLORREF clrText 
  195. );
  196. void SetBkColor( 
  197. COLORREF clrBk 
  198. );
  199. COLORREF GetTextColorDisabled() const;
  200. COLORREF GetTextColorNormal() const;
  201. COLORREF GetTextColorHover() const;
  202. COLORREF GetTextColorPressed() const;
  203. COLORREF GetBkColor() const;
  204. void SetTextAlignment( 
  205. INT nAlignment 
  206. );
  207. INT GetTextAlignment() const;
  208. void SetIconAlignment( 
  209. INT nAlignment 
  210. );
  211. INT GetIconAlignment() const;
  212. void SetTextMargins(
  213. INT nLeft,
  214. INT nTop,
  215. INT nRight,
  216. INT nBottom
  217. );
  218. void SetTextMargins(
  219. const RECT & rcMargins
  220. );
  221. void SetTextMargins(
  222. LPCRECT lprcMargins
  223. );
  224. void SetIconMargins(
  225. INT nLeft,
  226. INT nTop,
  227. INT nRight,
  228. INT nBottom
  229. );
  230. void SetIconMargins(
  231. const RECT & rcMargins
  232. );
  233. void SetIconMargins(
  234. LPCRECT lprcMargins
  235. );
  236. void GetTextMargins(
  237. INT & nLeft,
  238. INT & nTop,
  239. INT & nRight,
  240. INT & nBottom
  241. ) const;
  242. CRect GetTextMargins() const;
  243. void GetIconMargins(
  244. INT & nLeft,
  245. INT & nTop,
  246. INT & nRight,
  247. INT & nBottom
  248. ) const;
  249. CRect GetIconMargins() const;
  250. INT SetFocusMode(
  251. INT nFocusMode
  252. );
  253. INT GetFocusMode() const;
  254. protected:
  255.     //{{AFX_MSG(CExtButton)
  256. afx_msg void OnCaptureChanged(CWnd *pWnd);
  257. afx_msg BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message);
  258. afx_msg void OnKillFocus(CWnd* pNewWnd);
  259. afx_msg void OnMouseMove(UINT nFlags, CPoint point);
  260. afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
  261. afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point);
  262. afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
  263. afx_msg void OnPaint();
  264. afx_msg BOOL OnEraseBkgnd(CDC* pDC);
  265. afx_msg void OnEnable(BOOL bEnable);
  266. afx_msg void OnCancelMode();
  267. afx_msg void OnSize(UINT nType, int cx, int cy);
  268. //}}AFX_MSG
  269. #if _MFC_VER < 0x700
  270. afx_msg void OnActivateApp(BOOL bActive, HTASK hTask);
  271. #else
  272. afx_msg void OnActivateApp(BOOL bActive, DWORD hTask);
  273. #endif
  274. afx_msg LRESULT _OnPutToPopupMenuImpl(WPARAM wParam, LPARAM lParam);
  275. afx_msg void OnSysColorChange();
  276. afx_msg void OnSettingChange(UINT uFlags, __EXT_MFC_SAFE_LPCTSTR lpszSection);
  277. afx_msg LRESULT OnDisplayChange( WPARAM wParam, LPARAM lParam );
  278. afx_msg LRESULT OnThemeChanged( WPARAM wParam, LPARAM lParam );
  279. DECLARE_MESSAGE_MAP()
  280. protected:
  281. static void _CbPaintCombinedContent(
  282. LPVOID pCookie,
  283. CDC & dc,
  284. const CWnd & refWndMenu,
  285. const CRect & rcExcludeArea, // in screen coords
  286. int eCombineAlign // CExtPopupMenuWnd::e_combine_align_t values
  287. );
  288. virtual void _DoClick();
  289. public:
  290. virtual void _DrawImpl( // buffered paint
  291. CDC & dc,
  292. bool bTransparent = false,
  293. bool bCombinedContent = false
  294. );
  295. virtual void _RenderImpl( // non-buffered paint
  296. CDC & dc,
  297. bool bTransparent = false,
  298. bool bCombinedContent = false
  299. );
  300. protected:
  301. virtual __EXT_MFC_INT_PTR OnToolHitTest(
  302. CPoint point,
  303. TOOLINFO * pTI
  304. ) const;
  305. virtual int OnQueryMaxTipWidth( 
  306. __EXT_MFC_SAFE_LPCTSTR lpszText 
  307. );
  308. void InitToolTip();
  309. virtual void OnQueryWindowText(
  310. CExtSafeString & strWindowText
  311. ) const;
  312. virtual HFONT OnQueryFont() const;
  313. virtual CRect OnQueryBorderSizes() const;
  314. virtual INT OnQueryAlignmentText() const;
  315. virtual INT OnQueryAlignmentIcon() const;
  316. virtual CRect OnQueryMarginsText() const;
  317. virtual CRect OnQueryMarginsIcon() const;
  318. INT m_nIconAlignment;
  319. CRect m_rcIconMargins;
  320. CRect m_rcTextMargins;
  321. INT m_nFocusMode;
  322. bool m_bDefaultButton:1;
  323. INT m_nButtonType, m_nCheck;
  324. bool m_bDrawFocusRect:1, m_bDrawBorder:1, m_bMouseOver:1, m_bPushed:1,
  325. m_bPushTracking:1, m_bKeyTracking:1, m_bSeparatedDropDown:1,
  326. m_bAutoChangeID:1, m_bAutoChangeCmdIcon:1, m_bState:1;
  327. INT m_nTrackingHT;
  328.     bool m_bIconOnly:1; // STAR - icon only
  329. HCURSOR m_hCursor;
  330. CToolTipCtrl m_wndToolTip;
  331. //  HICON m_hIconIn;
  332. //  HICON m_hIconOut;
  333. public:
  334. CExtCmdIcon m_icon;
  335. protected:
  336. COLORREF m_clrBackground;
  337. COLORREF m_clrTextDisabled;
  338. COLORREF m_clrTextNormal;
  339. COLORREF m_clrTextHover;
  340. COLORREF m_clrTextPressed;
  341. CExtSafeString m_strToolTipText;
  342. bool m_bToolTipActive:1;
  343. virtual CExtPopupMenuTipWnd * OnAdvancedPopupMenuTipWndGet() const;
  344. virtual void OnAdvancedPopupMenuTipWndDisplay(
  345. CExtPopupMenuTipWnd & _ATTW,
  346. const RECT & rcExcludeArea
  347. ) const;
  348. }; // class CExtButton
  349. /////////////////////////////////////////////////////////////////////////////
  350. class __PROF_UIS_API CExtColorButton : public CExtButton
  351. {
  352. DECLARE_DYNCREATE(CExtColorButton);
  353. // Construction
  354. public:
  355.     CExtColorButton();
  356. virtual ~CExtColorButton();
  357. CExtSafeString m_sBtnTextColorDefault;
  358. CExtSafeString m_sBtnTextColorCustom;
  359. // Overrides
  360. // ClassWizard generated virtual function overrides
  361.     //{{AFX_VIRTUAL(CExtColorButton)
  362. //}}AFX_VIRTUAL
  363. // Implementation
  364. public:
  365. bool m_bEnableBtnColorDefault;
  366. bool m_bEnableBtnColorCustom;
  367. bool m_bUseStdColorDlg;
  368. bool m_bTrackColorPickerSelection;
  369. COLORREF m_clrDefault, m_clrSelected, m_clrLastHover;
  370. LPARAM m_lParamCookie;
  371. virtual void OnGenerateColorBtnIcon(
  372. CExtCmdIcon & icon
  373. );
  374. protected:
  375. virtual bool _OnTrackPopup(
  376. bool bSelectAny
  377. );
  378. virtual bool _IsMenuAvail();
  379. virtual void _RenderImpl( // non-buffered paint
  380. CDC & dc,
  381. bool bTransparent = false,
  382. bool bCombinedContent = false
  383. );
  384. virtual void _OnClick(
  385. bool bSelectAny,
  386. bool bSeparatedDropDownClicked
  387. );
  388.     //{{AFX_MSG(CExtColorButton)
  389. //}}AFX_MSG
  390. afx_msg LRESULT OnColorChanged(WPARAM wParam, LPARAM lParam);
  391. afx_msg LRESULT OnColorChangedFinally(WPARAM wParam, LPARAM lParam);
  392. afx_msg LRESULT OnColorSelectCustom(WPARAM wParam, LPARAM lParam);
  393. DECLARE_MESSAGE_MAP()
  394. }; // class CExtColorButton
  395. __PROF_UIS_API void AFXAPI __EXT_MFC_DDX_ColorButton( CDataExchange * pDX, INT nIDC, COLORREF & value );
  396. /////////////////////////////////////////////////////////////////////////////
  397. // CExtCheckBox window
  398. class __PROF_UIS_API CExtCheckBox : public CExtButton
  399. {
  400. public:
  401. DECLARE_DYNCREATE( CExtCheckBox );
  402. CExtCheckBox();
  403. virtual ~CExtCheckBox();
  404. protected:
  405. virtual void _OnClick(
  406. bool bSelectAny,
  407. bool bSeparatedDropDownClicked
  408. );
  409. virtual void _RenderImpl( // buffered paint
  410. CDC & dc,
  411. bool bTransparent = false,
  412. bool bCombinedContent = false
  413. );
  414. protected:
  415. virtual bool OnPaintBox(
  416. CDC & dc,
  417. CRect & rcBox,
  418. CExtPaintManager::eBoxState_t eState
  419. );
  420. virtual INT OnQueryAlignmentText() const;
  421. // Overrides
  422. //{{AFX_VIRTUAL(CExtCheckBox)
  423. //}}AFX_VIRTUAL
  424. //{{AFX_MSG(CExtCheckBox)
  425. //}}AFX_MSG
  426. DECLARE_MESSAGE_MAP()
  427. }; // class CExtCheckBox
  428. /////////////////////////////////////////////////////////////////////////////
  429. // CExtRadioButton window
  430. class __PROF_UIS_API CExtRadioButton : public CExtCheckBox
  431. {
  432. public:
  433. DECLARE_DYNCREATE( CExtRadioButton );
  434. CExtRadioButton();
  435. virtual ~CExtRadioButton();
  436. protected:
  437. virtual void _OnClick(
  438. bool bSelectAny,
  439. bool bSeparatedDropDownClicked
  440. );
  441. virtual void _RenderImpl( // buffered paint
  442. CDC & dc,
  443. bool bTransparent = false,
  444. bool bCombinedContent = false
  445. );
  446. // Overrides
  447. //{{AFX_VIRTUAL(CExtRadioButton)
  448. public:
  449. virtual BOOL PreTranslateMessage(MSG* pMsg);
  450. protected:
  451. virtual LRESULT WindowProc(UINT message, WPARAM wParam, LPARAM lParam);
  452. //}}AFX_VIRTUAL
  453. //{{AFX_MSG(CExtRadioButton)
  454. //}}AFX_MSG
  455. DECLARE_MESSAGE_MAP()
  456. protected:
  457. bool _CheckNextPrevRadioButton( bool bNext );
  458. void _UncheckRadioButtonsInGroup();
  459. virtual bool OnPaintBox(
  460. CDC & dc,
  461. CRect & rcBox,
  462. CExtPaintManager::eBoxState_t eState
  463. );
  464. }; // class CExtRadioButton
  465. /////////////////////////////////////////////////////////////////////////////
  466. // CExtHyperLinkButton window
  467. class __PROF_UIS_API CExtHyperLinkButton : public CExtButton
  468. {
  469. public:
  470. DECLARE_DYNCREATE( CExtHyperLinkButton );
  471. CExtHyperLinkButton();
  472. virtual ~CExtHyperLinkButton();
  473. // target URL, something like http://..., file://...,
  474. // www...., web...., mailto:..., C:\..., filename.ext
  475. // (if it is empty, then window text, i.e. button caption,
  476. // is used as the target URL)
  477. CExtSafeString m_strURL;
  478. // use WM_COMMAND instead of OnHyperLinkOpen()
  479. // (by default is not set; set it to true if
  480. // hyperlink should work as push button)
  481. bool m_bUseStdCommandNotification:1;
  482. // allow visited state highlighting
  483. bool m_bAllowVisited:1;
  484. // is visited
  485. mutable bool m_bVisited:1;
  486. void SetTextColorVisited( 
  487. COLORREF clrText 
  488. );
  489. COLORREF GetTextColorVisited();
  490. void SetTextUnderline( 
  491. bool bTextUnderline 
  492. );
  493. bool GetTextUnderline() const;
  494. protected:
  495. virtual void _OnClick(
  496. bool bSelectAny,
  497. bool bSeparatedDropDownClicked
  498. );
  499. virtual void _RenderImpl( // non-buffered paint
  500. CDC & dc,
  501. bool bTransparent = false,
  502. bool bCombinedContent = false
  503. );
  504. public:
  505. enum e_OpenMode_t
  506. {
  507. __EOM_OPEN = 0,
  508. __EOM_EDIT = 1,
  509. __EOM_PRINT = 2,
  510. };
  511. protected:
  512. COLORREF m_clrTextVisited;
  513. bool m_bTextUnderline:1;
  514. virtual bool _OpenVia_COM(
  515. __EXT_MFC_SAFE_LPCTSTR strURL,
  516. CExtHyperLinkButton::e_OpenMode_t eOM = CExtHyperLinkButton::__EOM_OPEN,
  517. bool bAllowErrorAlert = false
  518. ) const;
  519. virtual bool _OpenVia_Shell(
  520. __EXT_MFC_SAFE_LPCTSTR strURL,
  521. CExtHyperLinkButton::e_OpenMode_t eOM = CExtHyperLinkButton::__EOM_OPEN,
  522. bool bAllowErrorAlert = false
  523. ) const;
  524. virtual bool _OpenVia_RegInfo(
  525. __EXT_MFC_SAFE_LPCTSTR strURL,
  526. CExtHyperLinkButton::e_OpenMode_t eOM = CExtHyperLinkButton::__EOM_OPEN,
  527. bool bAllowErrorAlert = false
  528. ) const;
  529. public:
  530. static bool CExtHyperLinkButton::stat_HyperLinkOpen(
  531. __EXT_MFC_SAFE_LPCTSTR strURL,
  532. CExtHyperLinkButton::e_OpenMode_t eOM = CExtHyperLinkButton::__EOM_OPEN,
  533. bool bAllowErrorAlert = false
  534. );
  535. static bool stat_OpenVia_COM(
  536. __EXT_MFC_SAFE_LPCTSTR strURL,
  537. CExtHyperLinkButton::e_OpenMode_t eOM = CExtHyperLinkButton::__EOM_OPEN,
  538. bool bAllowErrorAlert = false
  539. );
  540. static bool stat_OpenVia_Shell(
  541. __EXT_MFC_SAFE_LPCTSTR strURL,
  542. CExtHyperLinkButton::e_OpenMode_t eOM = CExtHyperLinkButton::__EOM_OPEN,
  543. bool bAllowErrorAlert = false
  544. );
  545. static bool stat_OpenVia_RegInfo(
  546. __EXT_MFC_SAFE_LPCTSTR strURL,
  547. CExtHyperLinkButton::e_OpenMode_t eOM = CExtHyperLinkButton::__EOM_OPEN,
  548. bool bAllowErrorAlert = false
  549. );
  550. virtual void OnPaintHyperLink(
  551. CDC & dc,
  552. CRect rcText,
  553. bool bVisited,
  554. bool bEnabled,
  555. bool bDrawFocusRect,
  556. bool bFocus,
  557. bool bHover,
  558. bool bPushed
  559. ) const;
  560. virtual COLORREF OnQueryHyperLinkTextColor(
  561. bool bVisited,
  562. bool bEnabled,
  563. bool bDrawFocusRect,
  564. bool bFocus,
  565. bool bHover,
  566. bool bPushed
  567. ) const;
  568. virtual CExtSafeString OnQueryHyperLinkURL(
  569. bool bDisplayURL // true - display URL, false - navigate URL
  570. ) const;
  571. virtual bool OnHyperLinkOpen(
  572. __EXT_MFC_SAFE_LPCTSTR strURL,
  573. CExtHyperLinkButton::e_OpenMode_t eOM = CExtHyperLinkButton::__EOM_OPEN,
  574. bool bAllowErrorAlert = false
  575. ) const;
  576. // Overrides
  577. //{{AFX_VIRTUAL(CExtHyperLinkButton)
  578. //}}AFX_VIRTUAL
  579. protected:
  580.     //{{AFX_MSG(CExtHyperLinkButton)
  581. //}}AFX_MSG
  582. DECLARE_MESSAGE_MAP()
  583. }; // class CExtHyperLinkButton
  584. /////////////////////////////////////////////////////////////////////////////
  585. // CExtIconButton
  586. class __PROF_UIS_API CExtIconButton : public CExtButton
  587. {
  588. public:
  589. DECLARE_DYNCREATE( CExtIconButton );
  590. CExtIconButton();
  591. virtual ~CExtIconButton();
  592. CRect m_rcFocusRectPadding;
  593. // Overrides
  594. //{{AFX_VIRTUAL(CExtIconButton)
  595. //}}AFX_VIRTUAL
  596. //{{AFX_MSG(CExtIconButton)
  597. //}}AFX_MSG
  598. DECLARE_MESSAGE_MAP()
  599. protected:
  600. virtual void _RenderImpl( // buffered paint
  601. CDC & dc,
  602. bool bTransparent = false,
  603. bool bCombinedContent = false
  604. );
  605. }; /// class CExtIconButton
  606. /////////////////////////////////////////////////////////////////////////////
  607. //{{AFX_INSERT_LOCATION}}
  608. // Microsoft Developer Studio will insert additional declarations immediately before the previous line.
  609. #endif /// __EXT_BUTTON_H