directdraw 显示图像

本文档详细介绍了如何使用DirectDraw进行图像显示。通过创建DirectDraw对象,设置显示模式,创建主显示表面和从显示表面,实现了全屏显示图像。同时,文章还涉及了离屏页面的创建和位图的BlitFast操作。
摘要由CSDN通过智能技术生成
#include "global.h"


/*
LPDIRECTDRAW lpDD; //DiectDraw object
LPDIRECTDRAWSURFACE  lpDDSFront;  //DirectDraw 前页 
LPDIRECTDRAWSURFACE  lpDDSBrack;  //DirectDraw 后页
LPDIRECTDRAWCLIPPER  lpDDClipper;  //剪切板对象
LPDIRECTDRAWPALETTE  lpDDPal; //调色板
*/


LPDIRECTDRAW7 lpdd        = NULL;                // ddraw 接口指针
DDSURFACEDESC2 ddsd;
DDSCAPS2  ddscaps;
LPDIRECTDRAWSURFACE7  lpddsprimary = NULL;       // ddraw 主显示表面
LPDIRECTDRAWSURFACE7  lpddsback    = NULL;       // ddraw 从显示表面




DDSURFACEDESC2  ddsdof;
LPDIRECTDRAWSURFACE7  lpddofl; //离屏页面


#pragma comment(lib, "dxguid.lib")
#pragma comment(lib, "ddraw.lib")


char szMsg1[]="Hello world, I'am a directdraw boy!";
char szMsg2[]="按ESC退出";


LRESULT CALLBACK WinProc(HWND hWnd, UINT nMessage, WPARAM wPara, LPARAM lParam);
HWND InitWindow(HINSTANCE hInstance, int nCmdShow);
BOOL InitDDraw(HWND hWnd);
BOOL FreeDDraw();


int WINAPI WinMain( HINSTANCE hInstance,
  HINSTANCE hPrevInstance,
  LPSTR lpCmdLine,
  int nCmdShow
  )
{
MSG msg;
HWND hWnd = InitWindow(hInstance, nCmdShow);
if ( !hWnd)
return FALSE;


if ( !InitDDraw(hWnd) )
{
MessageBox(GetActiveWindow(), "初始化DDR AW失败。", NULL, MB_OK);
}

//msg loop
while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
  DispatchMessage(&msg);
}
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值