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

界面编程

开发平台:

Visual C++

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