MFC函数之BitBlt

// Cgame123View 绘制

void Cgame123View::OnDraw(CDC* pDC)
{
Cgame123Doc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return; // TODO: 在此处为本机数据添加绘制代码
CRect Rect;
GetClientRect(&Rect);
//屏幕宽度
width = Rect.right - Rect.left;
//屏幕高度
height = Rect.bottom - Rect.top; CDC Dc;
if (Dc.CreateCompatibleDC(pDC) == FALSE)
MessageBox(_T("Can't create DC"));
//在不同位置显示位图
Dc.SelectObject(backmap);
//显示两张位图使它们连接
pDC->BitBlt((width - ) / , , , height, &Dc, , goup - , SRCCOPY);
pDC->BitBlt((width - ) / , , , height, &Dc, , goup, SRCCOPY); //显示位图
CDC dccompatible;
if (dccompatible.CreateCompatibleDC(pDC) == FALSE)
MessageBox(_T("Can't create DC"));
dccompatible.SelectObject(plane); //第一二个参数为位置开始出(左上角),第三四个参数为设备的高宽,第六七个参数为切
pDC->BitBlt(, -, m_bm.bmWidth, m_bm.bmHeight, &dccompatible, , , SRCCOPY);
pDC->BitBlt(, height-, m_bm.bmWidth, m_bm.bmHeight, &dccompatible, , , SRCCOPY);
pDC->BitBlt(, , m_bm.bmWidth, m_bm.bmHeight, &dccompatible, -, , SRCCOPY);
pDC->BitBlt(, , m_bm.bmWidth, m_bm.bmHeight, &dccompatible, , , SRCCOPY);
pDC->BitBlt(, , m_bm.bmWidth, m_bm.bmHeight, &dccompatible, , , SRCCOPY); pDC->BitBlt(, , m_bm.bmWidth, m_bm.bmHeight, &dccompatible, , -, SRCCOPY);
pDC->BitBlt(, , m_bm.bmWidth, m_bm.bmHeight, &dccompatible, , , SRCCOPY);
pDC->BitBlt(, , m_bm.bmWidth, m_bm.bmHeight, &dccompatible, , , SRCCOPY); //正切上,负切下,下上高度为height
pDC->BitBlt(, , m_bm.bmWidth, m_bm.bmHeight, &dccompatible, , , SRCCOPY);
pDC->BitBlt(, , m_bm.bmWidth, m_bm.bmHeight, &dccompatible, , -, SRCCOPY); //正切上,负切下,下上高度为height,又一架完整的飞机
pDC->BitBlt(, , m_bm.bmWidth, m_bm.bmHeight, &dccompatible, , , SRCCOPY);
pDC->BitBlt(, , m_bm.bmWidth, m_bm.bmHeight, &dccompatible, , -, SRCCOPY); CClientDC dc(this);
} BitBlt 设备上下文绘图有很多种方法。例如通过创建位图画刷,利用其填充一个区域来实现图像的绘制。此外,还可以使用CDC类的位图函数来输出位图到设备上下文中。 BitBlt 用于从原设备中复制位图到目标设备,语法格式如下: BOOLBitBlt(int x,int y,int nWidth,int nHeight,CDC*pSrcDC,int xSrc,int ySrc,DWORDdwRop); x:目标矩形区域的左上角x轴坐标点。 y:目标矩形区域的左上角y轴坐标点。 nWidth:在目标设备中绘制位图的宽度。 nHight:在目标设备中绘制位图的高度。 pSrcDC:源设备上下文对象指针。 xSrc:源设备上下文的起点x轴坐标,函数从该起点复制位图到目标设备。 ySrc:源设备上下文的起点y轴坐标,函数从该起点复制位图到目标设备。 dwRop:光栅操作代码
dwRop有如下选择: BLACKNESS 使用黑色填充目标区域 DSTINVERT 目标矩阵区域颜色取反 MERGECOPY 使用与运算组合原设备矩形区域的颜色和目标设备的画刷 MERGEPAINT 使用或运算将反向的源矩形区域的颜色和目标矩形区域的颜色合并 NOTSRCCOPY 复制源设备区域的反色到目标设备中 NOTSRCERASE 使用或运算组合源设备区域与目标设备区域的颜色,然后对结果颜色取反 PATCOPY 复制源设备当前选中的画刷到目标设备 PATINVERT 使用异或运算组合目标设备选中的画刷和目标设备区域的颜色 PATPAINT 通过或运算组合目标区域当前选中的画刷和源设备区域反转的颜色 SRCAND 使用与运算组合源设备和目标设备区域的颜色 SRCCOPY 直接复制源设备区域到目标设备中 SRCERASE 使用与运算组合目标设备区域的反色与源设备区域的颜色 SRCINVERT 使用异或运算组合源设备区域颜色和目标设备区域颜色 SRCPAINT 使用或运算组合源设备区域颜色和目标设备区域颜色 WHITENESS 使用白色填充目标区域

http://blog.csdn.net/h1023417614/article/details/43086533

MFC函数之BitBlt的更多相关文章

  1. 破解 Rith's CrackMe #1(对比IDA查看动态分析中的MFC函数名)

    系统 : Windows xp 程序 : Rith's CrackMe #1 程序下载地址 :http://pan.baidu.com/s/1gecW9Qr 要求 : 注册机编写 使用工具 : IDA ...

  2. MFC函数—SetRegistryKey

    前言:在用mfc框架编写应用的时候,如果注意,你会发现在App应用类的InitInstance()函数中,初始化时总有一个 SetRegistryKey("String");  这 ...

  3. MFC函数—— CWnd::PreCreateWindow

     CWnd::PreCreateWindow virtual BOOL PreCreateWindow( CREATESTRUCT& cs ); 返回值: 如果要继续窗口的创建过程,则返回非零 ...

  4. StretchBlt函数和BitBlt函数的用法

    StretchBlt和BitBlt都用在双缓冲视图中,用来显示一幅图像 一.StretchBlt 函数从源矩形中复制一个位图到目标矩形,必要时按目标设备设置的模式进行图像的拉伸或压缩.也即是将内存中的 ...

  5. 【MFC】CDC::BitBlt介绍

    CDC::BitBlt介绍 2011-11-04 08:25 19576人阅读 评论(6) 收藏 举报 摘自: http://blog.csdn.net/bberdong/article/detail ...

  6. 常见MFC函数

    1.MFC常用函数:WinExec()ExitWindowsEx()GlobalMemoryStatus()GetSystemInfo()GetSystemDirectory()GetWindowsD ...

  7. MFC函数—CSingleDocTemplate

    前提:在InitInstance() 函数的初始化过程中,我们可以看到代码CSingleDocTemplate* pDocTemplate; pDocTemplate = new CSingleDoc ...

  8. MFC函数—CWinApp::LoadStdProfileSettings

    从 InitInstance 成员函数内调用该函数,启用和加载最近使用的(MRU)文件和最后浏览状态的列表.void LoadStdProfileSettings(   UINT nMaxMRU = ...

  9. MFC函数—— CFrameWnd::OnCreateClient

    CFrameWnd::OnCreateClient virtual BOOL OnCreateClient(LPCREATESTRUCT lpcs,CCreateContext*pContext); ...

随机推荐

  1. pagefile.sys and heberfil.sys

    dub 删除heberfil.sys大文件的方法 方法1:Windows/system32中的cmd.exe  输入 powercfg -h off,即可关闭休眠功能,同时 Hiberfil.sys ...

  2. SQL事务的使用

    在 SQL Server 中数据库事务处理是个重要的概念,也稍微有些不容易理解,很多 SQL 初学者编写的事务处理代码存往往存在漏洞,本文介绍了三种不同的方法,举例说明了如何在存储过程事务处理中编写正 ...

  3. SQL事务用法begin tran,commit tran和rollback tran的用法

    Sql Server 2005/2008中提供了begin tran,commit tran和rollback tran来使用事务. begin tran表示开始事务, commit tran表示提交 ...

  4. easyui的combobox下拉框初始化默认值以及保持该值一直显示的方法

    easyui的combobox下拉框默认初始值是空,下面是实现从远程加载数据之后初始化默认值,以及让该值一直排在下拉框的最顶部的方式. 目前的需求是需要在初始化的时候添加"全部数据库&quo ...

  5. 整除的尾数[HDU2099]

    整除的尾数 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submi ...

  6. CodeForces Round 195 Div2

    A. Vasily the Bear and Triangletime limit per test1 secondmemory limit per test256 megabytesinputsta ...

  7. BZOJ1100 : [POI2007]对称轴osi

    将多边形转化为如下的环: 1到2的边,角2,2到3的边,角3,...,n-1到n的边,角n,n到1的边,角1 然后枚举对称轴,如果i是对称轴,那么[i-n,i+n]是一个回文串 用Manacher算法 ...

  8. 洛谷 P1147 连续自然数和 Label:等差数列

    题目描述 对一个给定的自然数M,求出所有的连续的自然数段,这些连续的自然数段中的全部数之和为M. 例子:1998+1999+2000+2001+2002 = 10000,所以从1998到2002的一个 ...

  9. li:hover在ie6下失效的解决方案

    li:hover在ie6下是无效的,它只在ie7以下版本有效.要解决这个问题有两个解决方法.一个是用js来解决,但是这种方法我不喜欢,因为它必需把js代码和css代码都放在html文件中.第二种是在每 ...

  10. 微课程--Android--基础控件的使用

    view viewgroup是一种特殊的view,里面可以包含其他的view 如何生成view: 1 在代码里动态生成 2 写在XML里面 view的常见属性--宽度 wrap_content 随着内 ...