资源简介
本程序通过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编写
- MFC数字钟(基于VC6.0)
- 安科瑞智能电能表MODBUS通讯程序 VC6
- VC6LineNumberAddin.dll
- 用VC6.0实现多边形扫描线填充算法
- VC助手 VC6.0助手
- VC6.0 完整的图像处理程序 运用了大量
- VC6.0经典串口通信源程序C++
- VC6.0MFC界面美化
- 即时通讯开发源码终极版C#.NETC++都有
- VS打开VC6.0所需libcd.lib
- MFC画圆自定义|位置|半径|边界和内部
- 用vc++6.0实现的银行账户管理系统
- vc6.0编程助手Visual_AssistX(含破解补丁
- VC6.0_MFC画图demo小程序源码
- Visual_assist_X_for_VC6.0破解版.rar
- VC开发MFC局域网屏幕监控系统完美版
- VC6.0三维画图画三维球,立方体,矩形
- VC6.0获取MAC地址
- vc6.0+opengl纯色五角星填充
- vc6.0+opengl动态绘制五角星
- VC6.0中缺少VC98\\\\CRT\\\\SRC文件夹的--
- 二叉树 VC6.0 MFC实现 数据结构
- VC++ MFC编写的2048小游戏工程及源代码
- Coons曲面与hermite、bezier、B样条曲线标
- VC6.0的使用工具AddOpen插件、字体/颜色
- 基于C++语言编写的宠物管理系统(V
- MFC VC6.0 简单贪吃蛇
- Opencv+VC6.0实现摄像头视频的监控
- 数字图像处理 MFC bmp格式图片打开与保
评论
共有 条评论