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 + -
显示快捷键?