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

对话框与窗口

开发平台:

Visual C++

  1. // formatpa.cpp : implementation file
  2. //
  3. // This file is a part of the XTREME TOOLKIT PRO 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. #include "stdafx.h"
  21. #include "wordpad.h"
  22. #include "formatpa.h"
  23. #include "ddxm.h"
  24. #include "helpids.h"
  25. #ifdef _DEBUG
  26. #undef THIS_FILE
  27. static char BASED_CODE THIS_FILE[] = __FILE__;
  28. #endif
  29. const DWORD CFormatParaDlg::m_nHelpIDs[] =
  30. {
  31. IDC_EDIT_LEFT, IDH_WORDPAD_INDENT_LEFT,
  32. IDC_EDIT_RIGHT, IDH_WORDPAD_INDENT_RIGHT,
  33. IDC_EDIT_FIRST_LINE, IDH_WORDPAD_INDENT_FIRST,
  34. IDC_BOX, IDH_COMM_GROUPBOX,
  35. IDC_COMBO_ALIGNMENT, IDH_WORDPAD_ALIGN,
  36. IDC_TEXT_ALIGNMENT, IDH_WORDPAD_ALIGN,
  37. 0, 0
  38. };
  39. /////////////////////////////////////////////////////////////////////////////
  40. // CFormatParaDlg dialog
  41. CFormatParaDlg::CFormatParaDlg(PARAFORMAT& pf, CWnd* pParent /*=NULL*/)
  42. : CCSDialog(CFormatParaDlg::IDD, pParent)
  43. {
  44. m_pf = pf;
  45. if (m_pf.dwMask & PFM_ALIGNMENT)
  46. {
  47. if (m_pf.wAlignment & PFA_LEFT && m_pf.wAlignment & PFA_RIGHT)
  48. m_nAlignment = 2;
  49. else
  50. m_nAlignment = (m_pf.wAlignment & PFA_LEFT) ? 0 : 1;
  51. }
  52. else
  53. m_nAlignment = -1;
  54. //{{AFX_DATA_INIT(CFormatParaDlg)
  55. m_nFirst = 0;
  56. m_nLeft = 0;
  57. m_nRight = 0;
  58. //}}AFX_DATA_INIT
  59. }
  60. void CFormatParaDlg::DoDataExchange(CDataExchange* pDX)
  61. {
  62. CCSDialog::DoDataExchange(pDX);
  63. //{{AFX_DATA_MAP(CFormatParaDlg)
  64. DDX_CBIndex(pDX, IDC_COMBO_ALIGNMENT, m_nAlignment);
  65. DDX_Twips(pDX, IDC_EDIT_FIRST_LINE, m_nFirst);
  66. DDV_MinMaxTwips(pDX, m_nFirst, -31680, 31680);
  67. DDX_Twips(pDX, IDC_EDIT_LEFT, m_nLeft);
  68. DDV_MinMaxTwips(pDX, m_nLeft, -31680, 31680);
  69. DDX_Twips(pDX, IDC_EDIT_RIGHT, m_nRight);
  70. DDV_MinMaxTwips(pDX, m_nRight, -31680, 31680);
  71. //}}AFX_DATA_MAP
  72. }
  73. BEGIN_MESSAGE_MAP(CFormatParaDlg, CCSDialog)
  74. //{{AFX_MSG_MAP(CFormatParaDlg)
  75. //}}AFX_MSG_MAP
  76. END_MESSAGE_MAP()
  77. /////////////////////////////////////////////////////////////////////////////
  78. // CFormatParaDlg message handlers
  79. void CFormatParaDlg::OnOK()
  80. {
  81. CCSDialog::OnOK();
  82. m_pf.dwMask = 0;
  83. if (m_nAlignment >= 0)
  84. {
  85. ASSERT(m_nAlignment < 3);
  86. m_pf.dwMask |= PFM_ALIGNMENT;
  87. m_pf.wAlignment = (WORD)((m_nAlignment == 0) ? PFA_LEFT :
  88. (m_nAlignment == 1) ? PFA_RIGHT : PFA_CENTER);
  89. }
  90. if (m_nRight != DDXM_BLANK)
  91. m_pf.dwMask |= PFM_RIGHTINDENT;
  92. if (m_nLeft != DDXM_BLANK && m_nFirst != DDXM_BLANK)
  93. m_pf.dwMask |= PFM_STARTINDENT;
  94. if (m_nFirst != DDXM_BLANK)
  95. m_pf.dwMask |= PFM_OFFSET;
  96. m_pf.dxRightIndent = m_nRight;
  97. m_pf.dxOffset = -m_nFirst;
  98. m_pf.dxStartIndent = m_nLeft + m_nFirst;
  99. }
  100. BOOL CFormatParaDlg::OnInitDialog()
  101. {
  102. CComboBox* pBox = (CComboBox*)GetDlgItem(IDC_COMBO_ALIGNMENT);
  103. CString str;
  104. str.LoadString(IDS_LEFT);
  105. pBox->AddString(str);
  106. str.LoadString(IDS_RIGHT);
  107. pBox->AddString(str);
  108. str.LoadString(IDS_CENTER);
  109. pBox->AddString(str);
  110. if (m_nWordWrap == 0)
  111. {
  112. GetDlgItem(IDC_COMBO_ALIGNMENT)->EnableWindow(FALSE);
  113. GetDlgItem(IDC_TEXT_ALIGNMENT)->EnableWindow(FALSE);
  114. }
  115. m_nRight = (m_pf.dwMask & PFM_RIGHTINDENT) ? m_pf.dxRightIndent : DDXM_BLANK;
  116. if (m_pf.dwMask & PFM_OFFSET)
  117. {
  118. m_nFirst = -m_pf.dxOffset;
  119. m_nLeft = (m_pf.dwMask & PFM_STARTINDENT) ?
  120. m_pf.dxStartIndent + m_pf.dxOffset : DDXM_BLANK;
  121. }
  122. else
  123. m_nLeft = m_nFirst = DDXM_BLANK;
  124. CCSDialog::OnInitDialog();
  125. return TRUE;  // return TRUE unless you set the focus to a control
  126.               // EXCEPTION: OCX Property Pages should return FALSE
  127. }