faceDoc.cpp
上传用户:yipeng6868
上传日期:2013-02-16
资源大小:222k
文件大小:2k
源码类别:

书籍源码

开发平台:

Visual C++

  1. // faceDoc.cpp : implementation of the CFaceDoc class
  2. //
  3. #include "stdafx.h"
  4. #include "face.h"
  5. #include "faceDoc.h"
  6. #include "DIB.h"
  7. #ifdef _DEBUG
  8. #define new DEBUG_NEW
  9. #undef THIS_FILE
  10. static char THIS_FILE[] = __FILE__;
  11. #endif
  12. extern HANDLE hDIB;
  13. extern HANDLE hDIBTemp;
  14. extern class DIB gDib;
  15. extern int gheight;
  16. extern int gwidth;
  17. extern WORD gwBytesPerLine;
  18. /////////////////////////////////////////////////////////////////////////////
  19. // CFaceDoc
  20. IMPLEMENT_DYNCREATE(CFaceDoc, CDocument)
  21. BEGIN_MESSAGE_MAP(CFaceDoc, CDocument)
  22. //{{AFX_MSG_MAP(CFaceDoc)
  23. // NOTE - the ClassWizard will add and remove mapping macros here.
  24. //    DO NOT EDIT what you see in these blocks of generated code!
  25. //}}AFX_MSG_MAP
  26. END_MESSAGE_MAP()
  27. /////////////////////////////////////////////////////////////////////////////
  28. // CFaceDoc construction/destruction
  29. CFaceDoc::CFaceDoc()
  30. {
  31. // TODO: add one-time construction code here
  32. }
  33. CFaceDoc::~CFaceDoc()
  34. {
  35. }
  36. BOOL CFaceDoc::OnNewDocument()
  37. {
  38. if (!CDocument::OnNewDocument())
  39. return FALSE;
  40. // TODO: add reinitialization code here
  41. // (SDI documents will reuse this document)
  42. return TRUE;
  43. }
  44. /////////////////////////////////////////////////////////////////////////////
  45. // CFaceDoc serialization
  46. void CFaceDoc::Serialize(CArchive& ar)
  47. {
  48. if (ar.IsStoring())
  49. {
  50. // TODO: add storing code here
  51. }
  52. else
  53. {
  54. // TODO: add loading code here
  55. }
  56. }
  57. /////////////////////////////////////////////////////////////////////////////
  58. // CFaceDoc diagnostics
  59. #ifdef _DEBUG
  60. void CFaceDoc::AssertValid() const
  61. {
  62. CDocument::AssertValid();
  63. }
  64. void CFaceDoc::Dump(CDumpContext& dc) const
  65. {
  66. CDocument::Dump(dc);
  67. }
  68. #endif //_DEBUG
  69. /////////////////////////////////////////////////////////////////////////////
  70. // CFaceDoc commands
  71. BOOL CFaceDoc::OnOpenDocument(LPCTSTR lpszPathName) 
  72. {
  73. if (!CDocument::OnOpenDocument(lpszPathName))
  74. return FALSE;
  75. if(hDIB)
  76. GlobalFree(hDIB);
  77. hDIB = gDib.LoadDIB(lpszPathName);
  78. ASSERT(hDIB != NULL);
  79. hDIBTemp = gDib.CopyHandle(hDIB);
  80. LPBITMAPINFOHEADER lpbi;
  81. lpbi = (LPBITMAPINFOHEADER)GlobalLock(hDIB);
  82. gheight = lpbi->biHeight;
  83. gwidth = lpbi->biWidth;
  84. gwBytesPerLine = gDib.BytePerLine(hDIB);
  85. GlobalUnlock(hDIB);
  86. return TRUE;
  87. }