01、目录

目录

  • 01、目录
  • 02、GetDC()函数
    • 2.1 GetDC()示例
  • 03、GetWindowDC()函数
    • 3.1 GetWindowDC()示例
  • 04、ReleaseDC()函数

02、GetDC()函数

GetDc函数:用于获得hWnd参数所指定窗口的客户区域的一个设备环境。

所获得的设备环境可以是通用、类或者私有类型,具体由指定窗口的类风格决定。对于通用设备环境,GetDc函数每次获取一个设备环境时都会用默认属性对它进行初始化。该函数获得的类和私有设备环境会与它们最后一次的设置保持一致。当设备环境不再需要时,应该调用ReleaseDC函数将其释放。

2.1 GetDC()示例

获取Pictrue control控件的变量,然后获取设备上下文,部分Code省略,只截取核心Code

//C++代码 :.h程序
class xxx : public CDialogEx
{//
public:CStatic m_picVar; //Pictrue control控件变量
}
//C++代码:.cpp程序
void xxx::OnBnClickedBtnPreview()
{UpDateData(TRUE); //更新界面参数CRect rectPictrue;//获取绘图控件的客户区坐标m_picVar.GetClientRect(&rectPictrue);HWND* hWnd = (HWND*)GetDlgItem(IDC_WAVE_DRAW); //获取控件句柄(暂时不用)if(m_nPaintLine == 0){//画线TestLine(m_picVar.GetDC(), rectPictrue); //画线函数}
}

03、GetWindowDC()函数

GetWindowDC函数:返回hWnd参数所指定的窗口的设备环境。

获得的设备环境覆盖了整个窗口(包括非客户区),例如标题栏、菜单、滚动条,以及边框。这使得程序能够在非客户区域实现自定义图形,例如自定义标题或者边框。当不再需要该设备环境时,需要调用ReleaseDC函数释放设备环境。注意,该函数只获得通用设备环境,该设备环境的任何属性改变都不会反映到窗口的私有或者类设备环境中(如果窗口有的话)

3.1 GetWindowDC()示例

//C++代码 :.h程序
class xxx : public CDialogEx
{//
public:CStatic m_picVar; //Pictrue control控件变量
}
//C++代码:.cpp程序
void xxx::OnBnClickedBtnPreview()
{UpDateData(TRUE); //更新界面参数CRect rectPictrue;//获取绘图控件的客户区坐标m_picVar.GetClientRect(&rectPictrue);HWND* hWnd = (HWND*)GetDlgItem(IDC_WAVE_DRAW); //获取控件句柄(暂时不用)if(m_nPaintLine == 0){//画圆TestCircle(m_picVar.GetWindowDC(), rectPictrue); //画圆函数}/*如果不用此设备了,就要及时释放,以免占资源,西面我写出第三个函数,我这里是不使用的*/m_picVar.ReleaseDC(m_pivcVar.GetDC()); //释放资源,这里前面两个都可以释放
}

04、ReleaseDC()函数

ReleaseDC()函数功能:函数释放设备上下文环境(DC)供其他应用程序使用。函数的效果与设备上下文环境类型有关。它只释放公用的和设备上下文环境,对于类或私有的则无数。

函数原型:

int ReleaseDC(HWND hWnd, HDC hdc);

参数说明:

  • hWnd:指向要释放的设备上下文环境所在的窗口的句柄。
  • hDC:指向要释放的设备上下文环境的句柄。

返回值:返回值说明了设备上下文环境是否释放;如果释放成功,则返回值为1;如果没有释放成功,则返回值为0。

PS:每次调用GetWindowDC和GetDC函数检索公用设备上下文环境之后,应用程序必须调用ReleaseDC函数来释放设备上下文环境。
应用程序不能调用ReleaseDC函数来释放由CreateDC函数创建的设备上下文环境,只能使用DeleteDC函数。

版权声明:转载请注明出处,谢谢!

【MFC】GetDC函数、GetWindowDC函数 与 ReleaseDC函数介绍相关推荐

  1. MFC函数书本速查 API函数大全

    基础类 CObject AssertValid p3 Dump p3 IsSerializable p4 Serializable p4 GetRuntimeClass p4 IsKindOf p5 ...

  2. MFC匿名管道原理详解、函数总结、调用实例(用MFC的匿名管道读取CMD输出内容)(C++语言)

    本博客主要总结MFC中匿名管道的原理和具体调用实例,以及调用匿名管道三个核心函数各个参数用法详解,具体的如下所述. 博主在做项目时,遇到一个问题.用程序调用一个进程,然后读取进程输出信息.但是,博主用 ...

  3. MFC下如何定义全局变量和全局函数

    MFC下如何定义全局变量和全局函数 用MFC制作的工程由很多文件构成,它不能像一般C++程序那样随意在类外定义全局变量,在这里要想定义能被工程内多个文件共享的全局变量和函数必须用一些特殊方法才行.实际 ...

  4. C++ 函数模板和排序的函数模板——学习笔记

    我们在使用重载函数时,只是使用了函数名,而函数体还是得分别定义,在C++中函数模板为我们很好的解决了这个问题. 1.函数模板的声明 函数模板可以用来创建一个通用的函数,以支持多种不同的形参,避免重载函 ...

  5. 线程函数的设计以及MsgWaitForMultipleObjects函数的使用要点

    使用多线程技术可以显著地提高程序性能,本文就讲讲在程序中如何使用工作线程,以及工作线程与主线程通讯的问题. 一 创建线程 使用MFC提供的全局函数AfxBeginThread()即可创建一个工作线程. ...

  6. 【DLL的函数】关于DLL的函数|_declspec(dllimport)

    目录 关于DLL的函数 _declspec(dllimport) 关于DLL的函数 2012-09-24 21:26:53 动态链接库中定义有两种函数:导出函数(export   function)和 ...

  7. C语言 函数指针做函数参数(即回调函数)

    文章目录 函数指针做函数参数(回调函数) 回调函数概念 一般有三种调用方式 回调函数的作用 回调函数调用时刻 回调函数的语法: 1.简单的函数类型为:无参数.无返回值的函数. 2.完全形式的回调函数 ...

  8. c语言empty函数返回结果,c++中函数empty()怎么使用

    string s = "";if (s.empty()) { cout << "字符串为空.."; } else { cout << & ...

  9. Go 学习笔记(61)— Go 高阶函数、函数作为一等公民(函数作为输入参数、返回值、变量)的写法

    函数在 Go 语言中属于"一等公民(First-Class Citizen)"拥有"一等公民"待遇的语法元素可以如下使用 可以存储在变量中: 可以作为参数传递给 ...

最新文章

  1. Spark的基础应用
  2. C++实现求解最大公约数和最小公倍数
  3. 数学是什么?_题跋—数学是什么?
  4. 计算机设计大赛海洋世界,全国大学生海洋文化设计大赛第二届获奖作品(三)...
  5. 相机标定之4个坐标系之间的变换关系
  6. [NewLife.XCode]数据模型文件
  7. 06构造方法和文件读取
  8. windows本地script脚本恶意代码分析(带注释)
  9. 计算机辅助翻译术语PPT,计算机辅助翻译
  10. 爱立信实习总结之面试心得
  11. c语言 键盘扫描码 c-free,FreeBarcode条形码制作工具
  12. excel Cell函数
  13. 微信小程序(沧海一笑)
  14. CDlinux wifi密码破解(pin码枚举)
  15. QT 删除QString空白字符
  16. Spring cloud网关gateway代理websocket报Max frame length of 65536 has been exceeded
  17. Mac下如何重启SSH
  18. 解决U盘制作Ubuntu系统安装盘后无法格式化且容量无法恢复
  19. 折半插入排序的最强版
  20. 史上最全软件测试工程师常见的面试题总结(四)【多测师_王sir】

热门文章

  1. 阿里拥塞控制算法HPCC: High Precision Congestion Control论文
  2. C语言单相智能电表课程设计,《单相单用户电能表的设计课程设计》
  3. 自然语言处理--PTB数据集的预处理基本方法(上篇 1/2)
  4. 青葡萄笔试题c语言,天高云淡
  5. 视频教程-SSM后台管理系统开发实战-Java
  6. HDMI中继器,网线延长器,HDBASET传输器
  7. web前端工程师面试之路
  8. Google 或于近期恢复对华为 GMS 服务供应
  9. 单路电压表c语言编程,单片机课程设计(直流数字电压表).pdf
  10. python训练营 朋友圈_教你如何用python来弄一个高逼格的朋友圈