CreateCompatibleDC与CreateCompatibleBitmap】的更多相关文章

通常使用CreateCompatibleBitmap时候都会用到CreateCompatibleDC.而是用CreateCompatibleDC的目的不是为CreateCompatibleBitmap而产生,它更多为了建立内存设备环境起一个绘图操作与显示设备之间的缓冲作用,而CreateCompatibleBitmap 是为扩展内存设备环境的图像空间 CreateComptibleDC在mfc与sdk编程中参数不一样,前者是CDC*,后者是hdc(通常大多数绘图在sdk中是hdc,而mfc是cd…
函数功能:该函数创建一个与指定设备兼容的内存设备上下文环境(DC). 函数原型:HDC CreateCompatibleDC(HDC hdc): 参数: hdc:现有设备上下文环境的句柄,如果该句柄为NULL,该函数创建一个与应用程序的当前显示器兼容的内存设备上下文环境. 返回值:如果成功,则返回内存设备上下文环境的句柄:如果失败,则返回值为NULL. CreateCompatibleDc函数只适用于支持光栅操作的设备,应用程序可以通过调用GetDeviceCaps函数来确定一个设备是否支持这些…
要是能创建半透明的刷子就好了,就不必像这样以图层的方式实现透明阴影效果. 代码: 'code by lichmama@cnblogs.com '绘制阴影图层 Private Declare Function CreateCompatibleBitmap Lib "gdi32" (ByVal hdc As Long, ByVal nWidth As Long, _ ByVal nHeight As Long) As Long Private Declare Function Create…
利用MFC开发用户界面往往需要需要根据要求进行界面美化,界面的美化包括很多内容,比如说界面各功能模块空间布局,控件位置选择,各功能模块区域的字体.背景颜色选择.添加位图,标题栏.菜单栏.状态栏等的重绘等等.总的来说,界面美化包括客户区和非客户区,本文主要结合本人的第一个MFC软件界面开发项目的经验教训,简要介绍MFC单文档应用程序界面非客户区的重绘,主要包括标题栏和菜单栏. 重绘标题栏和菜单栏可以从以下几方面考虑:1. 自行绘制的标题栏和菜单栏覆盖默认的标题栏和菜单栏:2.相应的控件(最大.最小…
Explains techniques for capturing the screen programmatically. Download GDI source code - 72.1 Kb Download DirectX source code - 78.7 Kb Download WMEncoder source code - 59.7 Kb Introduction Some times, we want to capture the contents of the entire s…
CreateCompatibleDC与BitBlt CreateCompatibleDC 创建一个与指定设备一致的内存设备描述表. HDC CreateCompatibleDC(HDC hdc //设备描述表句柄); 参数 hdc 现有的设备描述表的一个句柄,如果这个句柄为NULL,则函数创建一个和应用程序当前屏幕一致的内存设备描述表. 返回值 如果函数调用成功,则返回一个内存设备描述表句柄:否则返回NULL. 说明 创建一个与特定设备场景一致的内存设备场景 返回值 Long,新设备场景句柄,若…
DDB(Device-dependent bitmap)依赖于具体设备,这主要体现在以下两个方面: DDB的颜色模式必需与输出设备相一致.例如,如果当前的显示设备是256色模式,那么DDB必然也是256色的,即一个像素用一个字节表示. 在256色以下的位图中存储的像素值是系统调色板的索引,其颜色依赖于系统调色板. 由于DDB高度依赖输出设备,所以DDB只能存在于内存中,它要么在视频内存中,要么在系统内存中. 11.3.1 DDB的创建 MFC的CBitmap类封装了DDB.该类提供了几个函数用来…
CreateCompatibleDC 创建一个与指定设备一致的内存设备描写叙述表. HDC CreateCompatibleDC(HDC hdc //设备描写叙述表句柄); 參数 hdc 现有的设备描写叙述表的一个句柄,假设这个句柄为NULL,则函数创建一个和应用程序当前屏幕一致的内存设备描写叙述表. 返回值 假设函数调用成功,则返回一个内存设备描写叙述表句柄:否则返回NULL. 说明 创建一个与特定设备场景一致的内存设备场景 返回值 Long,新设备场景句柄,若出错则为零 參数表 參数 类型及…
函数功能:该函数创建与指定的设备环境相关的设备兼容的位图. 函数原型:HBITMAP CreateCompatibleBitmap(HDC hdc,int nWidth,int nHeight): 参数: hdc:设备环境句柄. nWidth:指定位图的宽度,单位为像素. nHeight:指定位图的高度,单位为像素. 返回值:如果函数执行成功,那么返回值是位图的句柄:如果函数执行失败,那么返回值为NULL.若想获取更多错误信息,请调用GetLastError. 备注:由CreateCompati…
WindowsGDI的接口没提供这种功能机制.仅仅能是先通过CreateCompatibleDC 创建一个与显示器设备内容兼容的内存设备内容.用SelectObject将位图选入内存设备内容,再用BitBlt函数进行从内存到显存的位块传输. DC是设备内容.是我们问题的核心,请看<Windows程序设计>关于设备内容的解说: 设备内容: 设备内容中包括很多确定GDI函数怎样在设备上工作的眼下「属性」,这些属性同意传递给GDI函数的參数仅仅包括起始坐标或者尺寸信息,而不必包括Windows在设备…
不要使用CreateCompatibleDC得到的内存DC作为其参数,应使用真实DC,否则图片不能显示…
所有Windows API函数列表,为了方便查询,也为了大家查找,所以整理一下贡献出来了. 帮助手册:700多个Windows API的函数手册 免费下载 API之网络函数 API之消息函数 API之文件处理函数 API之打印函数 API之文本和字体函数 API之菜单函数 API之位图.图标和光栅运算函数 API之绘图函数 API之设备场景函数 API之硬件与系统函数 API之进程和线程函数 API之控件与消息函数 1. API之网络函数 WNetAddConnection 创建同一个网络资源的…
屏蔽背景刷新,在View中添加对WM_ERASEBKGND的响应,直接返回TRUE: BOOL CTEMV1View::OnEraseBkgnd(CDC* pDC) { // TODO: 在此添加消息处理程序代码和/或调用默认值 return TRUE; //return CView::OnEraseBkgnd(pDC); } 在OnDraw函数中添加代码: void CTEMV1View::OnDraw(CDC* pDC) { CTEMV1Doc* pDoc = GetDocument();…
Win32API.cs   using System;using System.Drawing;using System.Runtime.InteropServices;using Lordal.Window.Form.Lib.General;using Lordal.Window.Form.Lib.Win32; namespace Lordeo.Framework{ /// /// Windows API Functions /// public class Win32API { #regio…
本文主要介绍如何截取电脑桌面并将其保存为bmp图片. 1. Bmp图像文件组成 Bmp是Windows操作系统中的标准图像文件格式. Bmp图像文件由四部分组成: (1)位图头文件数据结构,包含Bmp图像文件的类型.文件大小等信息. (2)位图信息数据结构,包含Bmp图像的宽.高.压缩类型等信息. (3)颜色表,该部分可选,有些位图需要,有些位图(如24位真彩色位图)不需要. (4)位图数据. 1.1位图头文件数据结构 位图头文件数据结构包含Bmp图像文件的类型.文件大小等信息,占用14个字节.…
#include <windows.h> #include <stdint.h> #include <stdio.h> void ShootScreen(const char* filename, HWND hWnd) { HDC hdc = CreateDC("DISPLAY", NULL, NULL, NULL); int32_t ScrWidth = , ScrHeight = ; RECT rect = { }; if (hWnd == NU…
方法一: 转载:http://blog.csdn.net/chenlycly/article/details/46447297 转载:http://blog.csdn.net/harvic880925/article/details/8925650 方法二: 转载:http://blog.csdn.net/xdrt81y/article/details/22063479 搞Windows程序的人尽皆知分层窗口能够实现很多不错的效果,之前看过一些异形窗口的实现,所以就手痒也想自己搞一个玩一玩.自己…
用MFC如何高效地绘图             显示图形如何避免闪烁,如何提高显示效率是问得比较多的问题.     而且多数人认为MFC的绘图函数效率很低,总是想寻求其它的解决方案.     MFC的绘图效率的确不高但也不差,而且它的绘图函数使用非常简单,     只要使用方法得当,再加上一些技巧,用MFC可以得到效率很高的绘图程序.     我想就我长期(呵呵当然也只有2年多)使用MFC绘图的经验谈谈     我的一些观点.     1.显示的图形为什么会闪烁?             我们的…
1.MFC对话框显示BMP图片我们先从简单的开始吧.先分一个类: (一) 非动态显示图片(即图片先通过资源管理器载入,有一个固定ID) (二) 动态载入图片(即只需要在程序中指定图片的路径即可载入) 为方便说明,我们已经建好一个基于对话框的工程,名为Ttest. 对话框类为CTestDlg (一)    非动态载入图片. 方法1.先从最简单的开始,用picture 控件来实现. 步骤: 先在资源里Import一张图片,ID为IDB_BITMAP2 然后在对话框上添加一个picture控件,右键点…
void ViewReportDlg::CopyScreenToBitmap() { CDC *cdc = this->GetDC(); HDC wnd = cdc->GetSafeHdc(); //CClientDC dc(this); CRect rect; BOOL showMsgTag; //是否要弹出”图像保存成功对话框" this->GetClientRect(&rect); //获取画布大小 HBITMAP hbitmap = CreateCompatib…
//获取当前屏幕的并且保存图片 LRESULT CFeetScanView::SaveViewBMP(WPARAM wParam, LPARAM lParam) { CRect rect; this->GetClientRect(&rect); rect.left = ; rect.top = ; CBitmap m_bitmap; m_bitmap.m_hObject = CopyScreenToBitmap(rect); char szFileName[_MAX_PATH]; char…
怎样将我们上一篇截取的位图保存在文件夹里.根据MSDN,思路是这样的,用CreateFile函数在磁盘建立一个bmp文件,用WriteFile填充该bmp文件的文件头.信息头,像素等信息.之前我们只有一个位图的句柄即,hBitmap.所以保存截图的重点是,从hBitmap着手,获得建立一张位图所需要的信息. 我们使用GetObject和GetDIBits分别得到hBitmap“携带”的位图的文件头.信息头和像素位的信息. 这里用到的主要是<windows程序设计>15章的内容 程序代码如下:…
程序将系统窗口左上角100*100的图像复制到粘贴板上.程序的关键位置上加上了注释,相关知识<windows程序设计>第14章内容 #include <windows.h> #pragma comment(linker,"/subsystem:\"windows\"" ) HBITMAP GetBitmap(); LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ; int WINAP…
问题引入: 最近在尝试编写贪吃蛇游戏时遇到这么一个问题:当系统以较快频率向窗口发送WM_PAINT消息时,调用OnPaint()函数在窗口中绘制图形就会发生闪烁现象. 问题分析: 当我们把绘图过程放在OnPaint()函数中时(放在OnDraw()函数中也是如此,因为OnDraw()会被OnPaint()调用),由于频繁收到系统的WM_PAINT消息,窗口需要执行重绘.而重绘过程首先是执行了窗口内容的擦除(用当前背景色的画刷对窗口重新绘制),然后再根据绘图语句在窗口客户区中对窗口内容进行重绘.由…
1 引言 使用VC编写的容器类编辑器,很多都可以挂接ActiveX控件,因为基于COM的ActiveX控件不仅封装性不错,还可以显示一些不错的界面图元. 但是随着技术不断的进步,已被抛弃的ActiveX早已无法满足现代客户对审美的新需求,所以我们需要在这条道路上不断的独辟蹊径,今天提到的使用ActiveX装载WPF控件就是其中一条思路. WPF(Windows Presentation Foundation)是微软推出的基于Windows Vista的用户界面框架,属于.NET Framewor…
class CBitmap : public CGdiObject { DECLARE_DYNAMIC(CBitmap) public: static CBitmap* PASCAL FromHandle(HBITMAP hBitmap); // Constructors CBitmap(); BOOL LoadBitmap(LPCTSTR lpszResourceName); BOOL LoadBitmap(UINT nIDResource); BOOL LoadOEMBitmap(UINT…
以前看到三原色的图案,一直很好奇是如何画出来.后来终于搞清楚了,其实很简单,实际上就是RGB三个分量的"位与"运算. 下面给出Win32绘制三原色图案的例子,特此记录在此: #include <windows.h> LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM); int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,i…
//************************************ // 方法说明:    显示JPG和GIF.BMP图片 // 参数说明:    CDC * pDC           设备环境对象 // 参数说明:    CString strPath     要显示的图片路径 // 参数说明:    int x               要显示的X位置 // 参数说明:    int y               要显示的Y位置 // 返回值:      BOOL      …
第15章 设备相关位图_15.3 DIB和DDB的结合 15.3.1 从DIB创建DDB (1)hBitmap =CreateDIBitmap(…)——注意这名称会误导,实际上创建的是DDB 参数 说明 hdc 设备环境句柄,可以为NULL. pInfoHdr 指向DIB信息头的指针,即BITMAPINFOHEADER fInit 0或CBM_INIT.CBM_INIT指定用后面3个参数来初始化DDB中的像素位 pBits DIB像素位的指针 pInfo DIB信息指针,即BITMAPINFO(…
14.4.10 非矩形的位图图像 (1)“掩码”位图——单色位图,要显示的像素对应的掩码置1,不显示置0(2)光栅操作(点这里,见此文分析) (3)MaskBlt函数 ①MaskBlt(hdcDest, nXDest, nYDest, nWidth, nHeight, hdcSrc, nXSrc, nYSrc,hbmMask, xMask, yMask, dwRop): ②前景和背景:在由hbmMask指定的掩码中,数值1表示在那个位置应使用dwRop指定的前景光栅操作码.数值0表示应使用dwR…