⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 打印位图.txt

📁 打印屏幕上显示的位图
💻 TXT
字号:
#include <printers.hpp>
void PrintAsScreen( TCanvas *CanvasSource,TPrinter *Prntr,
                    TRect RectSource,TRect RectTarget)
{//所见即所得打印方式
    Prntr->BeginDoc();
    int OriginalMapMode = GetMapMode(Prntr->Handle);//当前影射模式
    SetMapMode(Prntr->Handle,MM_ISOTROPIC);//设置图形影射模式
    SIZE ss;
    ss.cx = Screen->Width;
    ss.cy = Screen->Height;
    SetWindowExtEx( Prntr->Handle, ss.cx, ss.cy, &ss);//设置窗口
    //获取打印机x方向每英寸象素点数
    float xLogPixelsPerInch = GetDeviceCaps(Prntr->Handle,LOGPIXELSX);
    //获取y方向每英寸象素点数
    float yLogPixelsPerInch = GetDeviceCaps(Prntr->Handle,LOGPIXELSY);

    ss.cx = xLogPixelsPerInch;
    ss.cy = yLogPixelsPerInch;
    SetViewportExtEx(//设置视口
        Prntr->Handle,
        Screen->Width  * xLogPixelsPerInch/Screen->PixelsPerInch,
        Screen->Height * yLogPixelsPerInch/Screen->PixelsPerInch,
        &ss);
    Prntr->Canvas->CopyRect(
        RectTarget,     //Target Rect
        CanvasSource,   //Source Canvas
        RectSource );   //Source Rect
    Prntr->EndDoc();
    SetMapMode(Prntr->Handle,OriginalMapMode);//复原影射模式
}
//---------------------------------------------------------------------------

调用 Bitmap

Graphics::TBitmap *bmp = new Graphics::TBitmap();
bmp->LoadFromFile(...);
PrintAsScreen( 
    bmp->Canvas, 
    Printer(),
    bmp->Canvas->ClipRect, 
    bmp->Canvas->ClipRect);
delete bmp;

如果是 JPEG
#include <jpeg.hpp>
Graphics::TBitmap *bmp = new Graphics::TBitmap();
TJPEGImage *jpeg = new TJPEGImage();
jpeg->LoadFromFile(...);
bmp->Assign(jpeg);
PrintAsScreen( 
    bmp->Canvas, 
    Printer(),
    bmp->Canvas->ClipRect, 
    bmp->Canvas->ClipRect);
delete jpeg;
delete bmp;

⌨️ 快捷键说明

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