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的更多相关文章
- 破解 Rith's CrackMe #1(对比IDA查看动态分析中的MFC函数名)
系统 : Windows xp 程序 : Rith's CrackMe #1 程序下载地址 :http://pan.baidu.com/s/1gecW9Qr 要求 : 注册机编写 使用工具 : IDA ...
- MFC函数—SetRegistryKey
前言:在用mfc框架编写应用的时候,如果注意,你会发现在App应用类的InitInstance()函数中,初始化时总有一个 SetRegistryKey("String"); 这 ...
- MFC函数—— CWnd::PreCreateWindow
CWnd::PreCreateWindow virtual BOOL PreCreateWindow( CREATESTRUCT& cs ); 返回值: 如果要继续窗口的创建过程,则返回非零 ...
- StretchBlt函数和BitBlt函数的用法
StretchBlt和BitBlt都用在双缓冲视图中,用来显示一幅图像 一.StretchBlt 函数从源矩形中复制一个位图到目标矩形,必要时按目标设备设置的模式进行图像的拉伸或压缩.也即是将内存中的 ...
- 【MFC】CDC::BitBlt介绍
CDC::BitBlt介绍 2011-11-04 08:25 19576人阅读 评论(6) 收藏 举报 摘自: http://blog.csdn.net/bberdong/article/detail ...
- 常见MFC函数
1.MFC常用函数:WinExec()ExitWindowsEx()GlobalMemoryStatus()GetSystemInfo()GetSystemDirectory()GetWindowsD ...
- MFC函数—CSingleDocTemplate
前提:在InitInstance() 函数的初始化过程中,我们可以看到代码CSingleDocTemplate* pDocTemplate; pDocTemplate = new CSingleDoc ...
- MFC函数—CWinApp::LoadStdProfileSettings
从 InitInstance 成员函数内调用该函数,启用和加载最近使用的(MRU)文件和最后浏览状态的列表.void LoadStdProfileSettings( UINT nMaxMRU = ...
- MFC函数—— CFrameWnd::OnCreateClient
CFrameWnd::OnCreateClient virtual BOOL OnCreateClient(LPCREATESTRUCT lpcs,CCreateContext*pContext); ...
随机推荐
- 启动mysql出现了error the server quit without updating pid file (/var/lib/mysql/localhost.localdomain.pid)
原来是我的mysql日志太多,所以去/data/log/mysql目录(这个目录是从/etc/my.cnf中的log-error确定的)下删除了 rm -rf mysql_binary_log.*的日 ...
- throws 和 throw
package unit5; public class Person { private int age; private String name; public String getName() { ...
- &1的用法
看到不少大神都喜欢用&1来判断一些东西,但是作为渣渣的我总是不理解这个&1到底是有什么作用. 今天写了程序看了一下,其实是判断奇偶用的. 如果是奇数,其结果为1,偶数结果为false. ...
- poj 1611 The Suspects 并查集
The Suspects Time Limit: 1000MS Memory Limit: 20000K Total Submissions: 30522 Accepted: 14836 De ...
- android native开发时:java.lang.UnsatisfiedLinkError: Native method not found的处理
这个异常一般是由于JNI的链接器不能正常识别C++的函数名造成的.处理的方法是用exern "C" {},来包裹需要export的C++的native方法. 如果native的方法 ...
- HDU2825 Wireless Password(AC自动机+状压DP)
题目问长度n至少包含k个咒语的字符串有多少个.也是比较入门的题.. dp[i][j][S]表示长度i(在自动机上转移k步)且后缀状态为自动机上第j个结点且当前包含咒语集合为S的方案数 dp[0][0] ...
- Nightmare
Nightmare Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total S ...
- emacs auto-complete
安装的是autocomplete http://cx4a.org/software/auto-complete/ 是bz2格式压缩的 下载后 在终端输入命令 tar -xjvf auto-compl ...
- 十个JavaScript中易犯的小错误,你中了几枪?
序言 在今天,JavaScript已经成为了网页编辑的核心.尤其是过去的几年,互联网见证了在SPA开发.图形处理.交互等方面大量JS库的出现. 如果初次打交道,很多人会觉得js很简单.确实,对于很多有 ...
- 蒟蒻修养之cf橙名计划
因为太弱,蒟蒻我从来没有上过div1(这就是今年的最后愿望啊啊啊啊啊)已达成................打cf几乎每次都是fst...........所以我的cf成绩图出现了惊人了正弦函数图像.. ...