• 大小: 6.85MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-09-25
  • 语言: C/C++
  • 标签: VC6.0  

资源简介

本程序通过VC++6.0测试,可以实现DEM数字高程文件的三维漫游

资源截图

代码片段和文件信息

/////////////////////////////////////////////////////////////////////
//CDIB.CPP : Implementation file for the DIB class.
/////////////////////////////////////////////////////////////////////

#include “stdafx.h“
#include “cdib.h“
#include “windowsx.h“

/////////////////////////////////////////////////////////////////////
//CDib :: CDib()
/////////////////////////////////////////////////////////////////////
CDib :: CDib(const char* fileName)
{
//Load the bitmap and Initialize the class‘s data members.
LoadBitmapFile(fileName);
}


/////////////////////////////////////////////////////////////////////
//CDib :: ~CDib()
/////////////////////////////////////////////////////////////////////
CDib :: ~CDib()
{
//Free the memory assinged to the bitmap.
GlobalFreePtr(m_pBmInfo);
}


/////////////////////////////////////////////////////////////////////
//CDib :: LoadBitmapFile()
//
//This function load a DIB from disk to memory.It also
//initializes the various class data members.
/////////////////////////////////////////////////////////////////////
void CDib :: LoadBitmapFile(const char* fileName)
{
//Construct and open a file object.
CFile file(fileNameCFile::modeRead);

//Read the bitmap‘s file header into memory.
BITMAPFILEHEADER bmFileHeader;
file.Read((void*)&bmFileHeadersizeof(bmFileHeader));

//Check whether the file is really a bitmap.
if(bmFileHeader.bfType != 0x4d42)
{
AfxMessageBox(“Not a bitmap file“);
m_pBmFileHeader=0;
m_pBmInfo=0;
m_pBmInfoHeader=0;
m_pRGBTable=0;
m_pDibBits=0;
m_numColors=0;
}
//If the file checks out OKcontinue loading.
else
{
//Calculate the size of the DIBwhich is the 
//file size minus the size of the header.
DWORD fileLength=file.GetLength();
DWORD dibSize = fileLength - sizeof(bmFileHeader);

//Allocate enough memory to fit the bitmap.
BYTE* pDib=
(BYTE*)GlobalAllocPtr(GMEM_MOVEABLEdibSize);
//Read the bitmap into memory and close the file.
DWORD dwRead ;
dwRead = file.Read((void*)pDibdibSize);

file.Close();

//Initialize pointers to the bitmap‘s BITMAPINFO
//and BITMAPINFOHEADER structures.
m_pBmInfo=(LPBITMAPINFO) pDib;
m_pBmInfoHeader=(LPBITMAPINFOHEADER) pDib;

//Calculate a pointer to the bitmap‘s color table.
m_pRGBTable=
(RGBQUAD*)(pDib + m_pBmInfoHeader->biSize);

//Get the number of colors in the bitmap.
int m_numColors=GetDibNumColors();

//Calculate the bitmap image‘s size.
m_pBmInfoHeader->biSizeImage=GetDibSizeImage();

//Make sure the biClrUsed field is initialized properly.
if(m_pBmInfoHeader->biClrUsed==0)
m_pBmInfoHeader->biClrUsed=m_numColors;

//Calculate a pointer to bitmap‘s actual data.
DWORD clrTableSize = m_numColors*sizeof(RGBQUAD);
m_pDibBits=
pDib + m_pBmInfoHeader->biSize + clrTableSize;
   
}
}


/////////////////////////////////////////////////////////////////////
//CDib :: GetDibSizeImage

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件       30184  2011-05-20 21:44  MyDEM3D\MyDEM3D.aps
     文件       94814  2002-10-29 22:37  MyDEM3D\3.dat
     文件      254054  2002-10-29 22:38  MyDEM3D\5.dat
     文件         826  2005-11-28 10:19  MyDEM3D\CDIB.H
     文件        6144  2005-11-28 15:09  MyDEM3D\CDIB.cpp
     文件        1534  2002-07-02 08:52  MyDEM3D\ChildFrm.cpp
     文件        1397  2002-07-02 08:52  MyDEM3D\ChildFrm.h
     目录           0  2011-03-15 12:00  MyDEM3D\Debug\
     文件       12793  2011-03-15 11:50  MyDEM3D\Debug\CDIB.obj
     文件           0  2011-03-15 11:50  MyDEM3D\Debug\CDIB.sbr
     文件       15235  2011-03-15 11:50  MyDEM3D\Debug\ChildFrm.obj
     文件           0  2011-03-15 11:50  MyDEM3D\Debug\ChildFrm.sbr
     文件       18006  2011-03-15 11:50  MyDEM3D\Debug\MainFrm.obj
     文件           0  2011-03-15 11:50  MyDEM3D\Debug\MainFrm.sbr
     文件     3228672  2011-03-15 11:50  MyDEM3D\Debug\MyDEM3D.bsc
     文件     2236503  2011-03-15 11:50  MyDEM3D\Debug\MyDEM3D.exe
     文件     2614556  2011-03-15 11:50  MyDEM3D\Debug\MyDEM3D.ilk
     文件       27017  2011-03-15 11:50  MyDEM3D\Debug\MyDEM3D.obj
     文件     6833864  2011-03-15 11:50  MyDEM3D\Debug\MyDEM3D.pch
     文件     3703808  2011-03-15 11:50  MyDEM3D\Debug\MyDEM3D.pdb
     文件       14248  2011-03-15 11:50  MyDEM3D\Debug\MyDEM3D.res
     文件           0  2011-03-15 11:50  MyDEM3D\Debug\MyDEM3D.sbr
     文件       44713  2011-03-15 11:50  MyDEM3D\Debug\MyDEM3DDoc.obj
     文件           0  2011-03-15 11:50  MyDEM3D\Debug\MyDEM3DDoc.sbr
     文件       45463  2011-03-15 11:50  MyDEM3D\Debug\MyDEM3DView.obj
     文件           0  2011-03-15 11:50  MyDEM3D\Debug\MyDEM3DView.sbr
     文件      105746  2011-03-15 11:50  MyDEM3D\Debug\StdAfx.obj
     文件     1361623  2011-03-15 11:50  MyDEM3D\Debug\StdAfx.sbr
     文件      214016  2011-03-15 11:50  MyDEM3D\Debug\vc60.idb
     文件      372736  2011-03-15 11:50  MyDEM3D\Debug\vc60.pdb
     文件       19357  2001-12-05 08:45  MyDEM3D\Dibapi.cpp
............此处省略37个文件信息

评论

共有 条评论