FORMATBA.H
上传用户:aakk678
上传日期:2022-07-09
资源大小:406k
文件大小:4k
源码类别:

界面编程

开发平台:

Visual C++

  1. // formatba.h : header file
  2. //
  3. // This is a part of the Microsoft Foundation Classes C++ library.
  4. // Copyright (C) 1992-1997 Microsoft Corporation
  5. // All rights reserved.
  6. //
  7. // This source code is only intended as a supplement to the
  8. // Microsoft Foundation Classes Reference and related
  9. // electronic documentation provided with the library.
  10. // See these sources for detailed information regarding the
  11. // Microsoft Foundation Classes product.
  12. #ifndef __FORMATBA_H__
  13. #define __FORMATBA_H__
  14. class CWordPadView;
  15. /*
  16. typedef struct tagNMHDR
  17. {
  18.     HWND  hwndFrom;
  19.     UINT  idFrom;
  20.     UINT  code;         // NM_ code
  21. }   NMHDR;
  22. */
  23. struct CHARHDR : public tagNMHDR
  24. {
  25. CHARFORMAT cf;
  26. CHARHDR() {cf.cbSize = sizeof(CHARFORMAT);}
  27. };
  28. #define FN_SETFORMAT 0x1000
  29. #define FN_GETFORMAT 0x1001
  30. /////////////////////////////////////////////////////////////////////////////
  31. // CLocalComboBox
  32. class CLocalComboBox : public CComboBox
  33. {
  34. public:
  35. //Attributes
  36. CPtrArray m_arrayFontDesc;
  37. static int m_nFontHeight;
  38. int m_nLimitText;
  39. BOOL HasFocus()
  40. {
  41. HWND hWnd = ::GetFocus();
  42. return (hWnd == m_hWnd || ::IsChild(m_hWnd, hWnd));
  43. }
  44. void GetTheText(CString& str);
  45. void SetTheText(LPCTSTR lpszText,BOOL bMatchExact = FALSE);
  46. //Operations
  47. BOOL LimitText(int nMaxChars);
  48. // Implementation
  49. public:
  50. virtual BOOL PreTranslateMessage(MSG* pMsg);
  51. // Generated message map functions
  52. //{{AFX_MSG(CLocalComboBox)
  53. afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
  54. //}}AFX_MSG
  55. DECLARE_MESSAGE_MAP()
  56. };
  57. class CFontComboBox : public CLocalComboBox
  58. {
  59. public:
  60. CFontComboBox();
  61. //Attributes
  62. CBitmap m_bmFontType;
  63. //Operations
  64. void EnumFontFamiliesEx(CDC& dc, BYTE nCharSet = DEFAULT_CHARSET);
  65. void AddFont(ENUMLOGFONT* pelf, DWORD dwType, LPCTSTR lpszScript = NULL);
  66. void MatchFont(LPCTSTR lpszName, BYTE nCharSet);
  67. void EmptyContents();
  68. static BOOL CALLBACK AFX_EXPORT EnumFamScreenCallBack(
  69. ENUMLOGFONT* pelf, NEWTEXTMETRICEX* /*lpntm*/, int FontType, 
  70. LPVOID pThis);
  71. static BOOL CALLBACK AFX_EXPORT EnumFamPrinterCallBack(
  72. ENUMLOGFONT* pelf, NEWTEXTMETRICEX* /*lpntm*/, int FontType, 
  73. LPVOID pThis);
  74. static BOOL CALLBACK AFX_EXPORT EnumFamScreenCallBackEx(
  75. ENUMLOGFONTEX* pelf, NEWTEXTMETRICEX* /*lpntm*/, int FontType, 
  76. LPVOID pThis);
  77. static BOOL CALLBACK AFX_EXPORT EnumFamPrinterCallBackEx(
  78. ENUMLOGFONTEX* pelf, NEWTEXTMETRICEX* /*lpntm*/, int FontType, 
  79. LPVOID pThis);
  80. //Overridables
  81. virtual void DrawItem(LPDRAWITEMSTRUCT lpDIS);
  82. virtual void MeasureItem(LPMEASUREITEMSTRUCT lpMIS);
  83. virtual int CompareItem(LPCOMPAREITEMSTRUCT lpCIS);
  84. // Generated message map functions
  85. //{{AFX_MSG(CFontComboBox)
  86. afx_msg void OnDestroy();
  87. //}}AFX_MSG
  88. DECLARE_MESSAGE_MAP()
  89. };
  90. class CSizeComboBox : public CLocalComboBox
  91. {
  92. public:
  93. CSizeComboBox();
  94. //Attributes
  95. int m_nLogVert;
  96. int m_nTwipsLast;
  97. public:
  98. void EnumFontSizes(CDC& dc, LPCTSTR pFontName);
  99. static BOOL FAR PASCAL EnumSizeCallBack(LOGFONT FAR* lplf, 
  100. LPNEWTEXTMETRIC lpntm,int FontType, LPVOID lpv);
  101. void TwipsToPointString(LPTSTR lpszBuf, int nTwips);
  102. void SetTwipSize(int nSize);
  103. int GetTwipSize();
  104. void InsertSize(int nSize);
  105. };
  106. /////////////////////////////////////////////////////////////////////////////
  107. // CFormatBar dialog
  108. class CFormatBar : public CToolBar
  109. {
  110. // Construction
  111. public:
  112. CFormatBar();
  113. // Operations
  114. public:
  115. void PositionCombos();
  116. void SyncToView();
  117. // Attributes
  118. public:
  119. CDC m_dcPrinter;
  120. CSize m_szBaseUnits;
  121. CFontComboBox m_comboFontName;
  122. CSizeComboBox m_comboFontSize;
  123. // Implementation
  124. public:
  125. void NotifyOwner(UINT nCode);
  126. protected:
  127. virtual void OnUpdateCmdUI(CFrameWnd* pTarget, BOOL bDisableIfNoHndler);
  128. void SetCharFormat(CCharFormat& cf);
  129. // Generated message map functions
  130. //{{AFX_MSG(CFormatBar)
  131. afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
  132. afx_msg void OnDestroy();
  133. //}}AFX_MSG
  134. afx_msg void OnFontNameKillFocus();
  135. afx_msg void OnFontSizeKillFocus();
  136. afx_msg void OnFontSizeDropDown();
  137. afx_msg void OnComboCloseUp();
  138. afx_msg void OnComboSetFocus();
  139. afx_msg LONG OnPrinterChanged(UINT, LONG); //handles registered message
  140. DECLARE_MESSAGE_MAP()
  141. };
  142. #endif