Bmptestdoc.cpp
上传用户:cjd055
上传日期:2013-04-01
资源大小:608k
文件大小:3k
源码类别:

交通/航空行业

开发平台:

Visual C++

  1. // BmpTestDoc.cpp : implementation of the CBmpTestDoc class
  2. //
  3. #include "stdafx.h"
  4. #include "BmpTest.h"
  5. #include "BmpTestDoc.h"
  6. #ifdef _DEBUG
  7. #define new DEBUG_NEW
  8. #undef THIS_FILE
  9. static char THIS_FILE[] = __FILE__;
  10. #endif
  11. /////////////////////////////////////////////////////////////////////////////
  12. // CBmpTestDoc
  13. IMPLEMENT_DYNCREATE(CBmpTestDoc, CDocument)
  14. BEGIN_MESSAGE_MAP(CBmpTestDoc, CDocument)
  15. //{{AFX_MSG_MAP(CBmpTestDoc)
  16. ON_COMMAND(ID_FILE_SAVE, OnFileSave)
  17. ON_COMMAND(ID_FILE_SAVE_AS, OnFileSaveAs)
  18. ON_COMMAND(ID_PICK, OnPick)
  19. ON_COMMAND(ID_FILE_OPENC, OnFileOpenc)
  20. //}}AFX_MSG_MAP
  21. END_MESSAGE_MAP()
  22. /////////////////////////////////////////////////////////////////////////////
  23. // CBmpTestDoc construction/destruction
  24. CBmpTestDoc::CBmpTestDoc()
  25. {
  26. // TODO: add one-time construction code here
  27. }
  28. CBmpTestDoc::~CBmpTestDoc()
  29. {
  30. }
  31. BOOL CBmpTestDoc::OnNewDocument()
  32. {
  33. if (!CDocument::OnNewDocument())
  34. return FALSE;
  35. // TODO: add reinitialization code here
  36. // (SDI documents will reuse this document)
  37. return TRUE;
  38. }
  39. /////////////////////////////////////////////////////////////////////////////
  40. // CBmpTestDoc serialization
  41. void CBmpTestDoc::Serialize(CArchive& ar)
  42. {
  43. CString str;
  44. CFile * file;
  45. LPCTSTR fn;
  46. file=ar.GetFile();
  47. str=file->GetFileName();
  48. fn=str.GetBuffer(str.GetLength());
  49. if (ar.IsStoring())
  50. {
  51. // TODO: add storing code here
  52. m_Dib.SaveBmp(fn);
  53. }
  54. else
  55. {
  56. // TODO: add loading code here
  57. m_Dib.LoadBmp(fn);
  58. }
  59.     m_BM=true;
  60. }
  61. /////////////////////////////////////////////////////////////////////////////
  62. // CBmpTestDoc diagnostics
  63. #ifdef _DEBUG
  64. void CBmpTestDoc::AssertValid() const
  65. {
  66. CDocument::AssertValid();
  67. }
  68. void CBmpTestDoc::Dump(CDumpContext& dc) const
  69. {
  70. CDocument::Dump(dc);
  71. }
  72. #endif //_DEBUG
  73. /////////////////////////////////////////////////////////////////////////////
  74. // CBmpTestDoc commands
  75. void CBmpTestDoc::OnFileSave() 
  76. {
  77. // TODO: Add your command handler code here
  78. CString str;
  79. LPCTSTR fn;
  80. str=GetPathName();
  81. fn=str.GetBuffer(100);
  82. m_Dib.SaveBmp(fn);
  83. }
  84. void CBmpTestDoc::OnFileSaveAs() 
  85. {
  86. // TODO: Add your command handler code here
  87. CString str;
  88. LPCTSTR fn;
  89. CFileDialog fd(FALSE,
  90.    NULL,
  91.    NULL,
  92.    OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
  93.    "Windows Bmp files(*.bmp)|*.bmp|All files(*.*)|*.*||"
  94.    );
  95. if(fd.DoModal()==IDOK)
  96. {
  97. str=fd.GetPathName();
  98. if(str.Find(".bmp")==-1)
  99. {
  100. str=str+".bmp";
  101. }
  102. fn=str.GetBuffer(100);
  103. m_Dib.SaveBmp(fn);
  104. SetPathName(fn);
  105. }
  106. }
  107. void CBmpTestDoc::OnPick() 
  108. {
  109. // TODO: Add your command handler code here
  110. m_Dib.PickBitmapToFile("子画面.bmp",
  111.    20,
  112.    20,
  113.    231,
  114.    241
  115.    );
  116. }
  117. void CBmpTestDoc::OnFileOpenc() 
  118. {
  119. // TODO: Add your command handler code here
  120. static CFileFind fFind;
  121. CString strName;
  122.     static BOOL ffind=fFind.FindFile("D:\郭大波\做测试的一些数据\*.bmp");
  123. CString str;
  124. if(ffind==TRUE)
  125. {
  126. ffind=fFind.FindNextFile();
  127. strName=fFind.GetFilePath();
  128. AfxGetApp()->OpenDocumentFile(strName);
  129. }
  130. }