unit1.cpp

来自「本书《C++Builder与WindowsAPI经典范例》附含配套光盘包括132」· C++ 代码 · 共 51 行

CPP
51
字号
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
//删除Memo1中所有文字
Memo1->Clear();
//用Bitmap简化Image1图文件语句
Graphics::TBitmap *Bitmap = Image1->Picture->Bitmap;

//取得指定文件的完整路径
char cdir[MAX_PATH];
char *bfile = "//BIT-8-256.bmp";
//将程序现在目录所在填入此字符数组
::GetCurrentDirectory( MAX_PATH, cdir);
//将现在目录加上指定文件名
strcat( cdir, bfile);
//声明图文件结构
BITMAPFILEHEADER bmfh;
BITMAPINFOHEADER bmih;
//打开指定文件
HANDLE HFile = ::CreateFile(cdir, GENERIC_READ,
                            0, NULL,
                            OPEN_EXISTING,
                            FILE_ATTRIBUTE_NORMAL, NULL);
//
if (HFile != INVALID_HANDLE_VALUE)
   {
   DWORD dwRead;
   //取得图文件结构的相关数据
   ::ReadFile(HFile, &bmfh, sizeof(BITMAPFILEHEADER), &dwRead, NULL);
   ::ReadFile(HFile, &bmih, sizeof(BITMAPINFOHEADER), &dwRead, NULL);
   //建立一新暂时设置,以利图文件16位转成8位时的最大化
   BITMAPINFO bmi;
   //将bmi结构所在内存初始化﹍て
   memset(&bmi, 0, sizeof(BITMAPINFO));
   //BITMAPINFO结构包含BITMAPINFOHEADER结构+RGBQUAD结构
   //设置BITMAPINFOHEADER结构成员

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?