资源简介
本程序通过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个文件信息
相关资源
- VC6.0环境下dda直线画法
- 北航2006-2017研究生复试上机源码_vc6
- VC6.0助手 VA_X_Setup1823VC6.0助
- MFC(VC6.0和VS2008)采用ADO访问access数据
- VC6.0 多国语言切换(DLL版本,包含D
- 用c语言进行图片处理
- 贪吃蛇(有完全源码和每一个功能的
- Visual_assist_X_for_VC6.0破解版.zip
- SIFT算法_全景图像拼接VC源码有中文注
- gdi+游戏框架这是一个用vc6.0写的Win3
- vc6.0实现的计算机图形学各种算法源代
- VC++串口通信源代码VC6.0
- vc6.0 完整的文本编辑器源码
- VC6.0 winsock编程.pdf
- 飞机飞行源代码VC6.0
- SDKvc6.0用
- MFC记事本vc6.0下开发
- vc6.0的MFC实现简单的俄罗斯方块小游戏
- vc6.0下mfc控件加载jpg格式图片
- VC6.0 OpenCV 摄像头程序
- VC6.0--计算器
- 个人收支财务管理系统 VC6.0MFC+ sql s
- 俄罗斯方块(基于VC6.0单文档)
- vc6.0编写的基于API的串口通信程序
- VC6.0 C++ MD5验证源码文件和字符串验证
- VC6.0编写的包过滤防火墙
- 基于VC++6.0的绘图软件画直线曲线矩形
- 坦克大战完整源代码
- VC6.0 MFC时钟运动源码.zip
- VC6.0将ListCtrl中数据写入到Excel
评论
共有 条评论