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

对话框与窗口

开发平台:

Visual C++

  1. // options.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 "strings.h"
  23. #ifdef _DEBUG
  24. #undef THIS_FILE
  25. static char BASED_CODE THIS_FILE[] = __FILE__;
  26. #endif
  27. /////////////////////////////////////////////////////////////////////////////
  28. // CDocOptions
  29. void CDocOptions::SaveDockState(CDockState& ds, LPCTSTR lpszProfileName, LPCTSTR lpszLayout)
  30. {
  31. CMemFile file;
  32. CArchive ar(&file, CArchive::store);
  33. ds.Serialize(ar);
  34. ar.Close();
  35. int nSize = (int)file.GetLength();
  36. ASSERT(nSize < 4096);
  37. BYTE* p = new BYTE[nSize];
  38. file.SeekToBegin();
  39. file.Read(p, nSize);
  40. theApp.WriteProfileBinary(lpszProfileName, lpszLayout, p, nSize);
  41. delete [] p;
  42. }
  43. void CDocOptions::SaveOptions(LPCTSTR lpszProfileName)
  44. {
  45. SaveDockState(m_ds1, lpszProfileName, szLayout1);
  46. SaveDockState(m_ds2, lpszProfileName, szLayout2);
  47. theApp.WriteProfileInt(lpszProfileName, szWrap, m_nWordWrap);
  48. }
  49. void CDocOptions::LoadDockState(CDockState& ds, LPCTSTR lpszProfileName, LPCTSTR lpszLayout)
  50. {
  51. BYTE* p;
  52. UINT nLen = 0;
  53. if (theApp.GetProfileBinary(lpszProfileName, lpszLayout, &p, &nLen))
  54. {
  55. ASSERT(nLen < 4096);
  56. CMemFile file;
  57. file.Write(p, nLen);
  58. file.SeekToBegin();
  59. CArchive ar(&file, CArchive::load);
  60. ds.Serialize(ar);
  61. ar.Close();
  62. delete p;
  63. }
  64. }
  65. void CDocOptions::LoadOptions(LPCTSTR lpszProfileName)
  66. {
  67. LoadDockState(m_ds1, lpszProfileName, szLayout1);
  68. LoadDockState(m_ds2, lpszProfileName, szLayout2);
  69. m_nWordWrap = theApp.GetProfileInt(lpszProfileName, szWrap, m_nDefWrap);
  70. }
  71. /////////////////////////////////////////////////////////////////////////////
  72. // CUnit
  73. const CUnit& CUnit::operator=(const CUnit& unit)
  74. {
  75. m_nTPU = unit.m_nTPU;
  76. m_nSmallDiv = unit.m_nSmallDiv;
  77. m_nMediumDiv = unit.m_nMediumDiv;
  78. m_nLargeDiv = unit.m_nLargeDiv;
  79. m_nMinMove = unit.m_nMinMove;
  80. m_nAbbrevID = unit.m_nAbbrevID;
  81. m_bSpaceAbbrev = unit.m_bSpaceAbbrev;
  82. m_strAbbrev = unit.m_strAbbrev;
  83. return *this;
  84. }
  85. CUnit::CUnit(int nTPU, int nSmallDiv, int nMediumDiv, int nLargeDiv,
  86. int nMinMove, UINT nAbbrevID, BOOL bSpaceAbbrev)
  87. {
  88. m_nTPU = nTPU;
  89. m_nSmallDiv = nSmallDiv;
  90. m_nMediumDiv = nMediumDiv;
  91. m_nLargeDiv = nLargeDiv;
  92. m_nMinMove = nMinMove;
  93. m_nAbbrevID = nAbbrevID;
  94. m_bSpaceAbbrev = bSpaceAbbrev;
  95. }