DeleteDC、ReleaseDC 、DeleteObject的使用
DeleteDC
该函数删除指定的设备上下文环境(DC)。
原型:
BOOL DeleteDC(HDC hdc);
参数:
hdc:设备上下文环境的句柄。
返回值:
成功,返回非零值;失败,返回零。调用GetLastError获取扩展错误信息。
说明:
如果一个设备上下文环境的句柄是通过调用GetDC函数得到的,那么应用程序不能删除该设备上下文环境,它应该调用ReleaseDC函数来释放该设备上下文环境。
ReleaseDC
函数释放设备上下文环境(DC)供其他应用程序使用。函数的效果与设备上下文环境类型有关。
原型:
int ReleaseDC(HWND hWnd, HDC hdc);
参数:
hWnd:指向要释放的设备上下文环境所在的窗口的句柄。
hDC:指向要释放的设备上下文环境的句柄。
返回值:
返回值说明了设备上下文环境是否释放;如果释放成功,则返回值为1;如果没有释放成功,则返回值为0。
说明:
每次调用GetWindowDC和GetDC函数检索公用设备上下文环境之后,应用程序必须调用ReleaseDC函数来释放设备上下文环境。
应用程序不能调用ReleaseDC函数来释放由CreateDC、CreateCopatibleDC 函数创建的设备上下文环境,只能使用DeleteDC函数。
DeleteObject
该函数删除一个逻辑笔、画笔、字体、位图、区域或者调色板,释放所有与该对象有关的系统资源,在对象被删除之后,指定的句柄也就失效了。
原型:
BOOL DeleteObject(HGDIOBJ hObject);
参数:
hObject:逻辑笔、画笔、字体、位图、区域或者调色板的句柄。
返回值:
成功,返回非零值;如果指定的句柄无效或者它已被选入设备上下文环境,则返回值为零。调用GetLastError获取扩展错误信息。
说明:
当一个绘画对象(如笔或画笔)当前被选入一个设备上下文环境时不要删除该对象。当一个调色板画笔被删除时,与该画笔相关的位图并不被删除,该图必须单独地删除。
例子:
var hMemBackground = (IntPtr)0;
var hBmpBackground = (IntPtr)0;
var formHandle = (IntPtr)0; formHandle = GetDC(this.CallHandle);
hMemBackground =CreateCompatibleDC(formHandle);
hBmpBackground = Bitmap.GetHbitmap();//创建DUI位图对象
SelectObject(hMemBackground, hBmpBackground); if (hBmpBackground != (IntPtr)0)
EasyWayLEDDriver.DeleteObject(hBmpBackground); if (hMemBackground != (IntPtr)0)
EasyWayLEDDriver.DeleteDC(hMemBackground); if (formHandle != (IntPtr)0)
EasyWayLEDDriver.ReleaseDC(_thrLedParam.CallHandle, formHandle);
DeleteDC、ReleaseDC 、DeleteObject的使用的更多相关文章
- DeleteDC ReleaseDC DeleteObject之间的区别
DeleteDC 该函数删除指定的设备上下文环境(DC). 原型: BOOL DeleteDC(HDC hdc): 参数: hdc:设备上下文环境的句柄. 返回值: 成功,返回非零值:失败,返回零.调 ...
- 第14章 位图和位块传输_14.4 GDI位图对象(3)
14.4.10 非矩形的位图图像 (1)“掩码”位图——单色位图,要显示的像素对应的掩码置1,不显示置0(2)光栅操作(点这里,见此文分析) (3)MaskBlt函数 ①MaskBlt(hdcDest ...
- 第14章 位图和位块传输_14.4 GDI位图对象(2)
14.4.7 在位图上绘图 (1)在内存设备环境中绘图(与真实DC不同的是,内存DC的显示表面是个位图) (2)GetTextExtentPoint32函数:用于确定文本字符串的像素大小.(此大小就是 ...
- [游戏模版7] Win32 最简单贴图
>_<:this is the first using mapping. >_<:There will be introducing how to do: First load ...
- [游戏模版9] Win32 半透明 图像处理
>_<:Previous part we talk about how to map a transparent picture, and this time we will solve ...
- [游戏模版15] Win32 飞机射击
>_<:Only give you the code,try to understand it! >_<:picture resource #include <windo ...
- [游戏模版16] Win32 飞机射击 敌人追踪
>_<:AI introduction. >_<:According the plane position (nowX,nowY) relative to birds' pos ...
- [游戏模版17] Win32 推箱子 迷宫
>_<:Here introduce a simple game: >_<:resource >_<:only can push a box and finally ...
- [游戏模版18] Win32 五子棋
>_<:Learning its AI logic. >_<:resource >_<:code: #include <windows.h> // C ...
- [游戏模版19] Win32 物理引擎 匀速运动
>_<:Learning the physical engine >_<:resource >_<:code #include <windows.h> ...
随机推荐
- webdriver操作iframe标记的编辑器
1.iFrame有ID 或者 name的情况//进入id="frame1"的frame中,定位id="div1"的div和id="input1&quo ...
- vue elementui 递归 sidebar可伸缩侧边栏
最近在学习vue 做了一个可伸缩的 侧边栏 记录下 在很多管理系统都用到 管理系统一般都长的差不多 首先是收起时候 展开时候 首先是新建一个Layout.vue <template> &l ...
- Linux下的GitHub安装与简单配置教程 ~ 转载
Linux下的GitHub安装与简单配置教程 1.GitHub简介 Git是一个分布式版本控制系统,与其相对的是CVS.SVN等集中式的版本控制系统. 2.Git的安装 1)安装Git a.查看与 ...
- zabbix 硬盘健康监控
#!/bin/sh function sh { sd=`ls /dev/ | grep '^sd' |grep -v '[0-9]$'` echo '' > /usr/local/zabbix/ ...
- 3.Centos-Docker-rancher
1.安装mysql,设置密码 docker run -d --name mysqldb -e MYSQL_ROOT_PASSWORD=密码 mysql:latest --character-set-s ...
- springMVC多图片压缩上传的实现
首先需要在配置文件中添加配置: <!--配置文件的视图解析器,用于文件上传,其中ID是固定的:multipartResolver--> <bean id="multipar ...
- AC日记——[国家集训队2011]旅游(宋方睿) cogs 1867
[国家集训队2011]旅游(宋方睿) 思路: 树链剖分,边权转点权: 线段树维护三个东西,sum,max,min: 当一个区间变成相反数时,sum=-sum,max=-min,min=-max: 来, ...
- 牛客网 牛客小白月赛5 I.区间 (interval)-线段树 or 差分数组?
牛客小白月赛5 I.区间 (interval) 休闲的时候写的,但是写的心情有点挫,都是完全版线段树,我的一个队友直接就水过去了,为啥我的就超内存呢??? 试了一晚上,找出来了,多初始化了add标记数 ...
- PL/SQL&存储过程||存储函数&触发器
plsql 有点:交互式 非过程化 数据操纵能力强 自动导航语句简单 调试简单 想率高 声明类型的方式 1.基本类型 2.引用变量 3.记录型变量 基本格式 declare 声明 b ...
- [BZOJ 3108] 图的逆变换
Link: BZOJ 3108 传送门 Solution: 样例教你做题系列 观察第三个输出为No的样例,发现只要存在$edge(i,k),edge(j,k)$,那么$i,j$的出边一定要全部相同 于 ...