做MFC分割窗口时,其中含有视类CxxVew窗口,含有General Class (自定义的类CMyXX),在CMyXX中使用GetDC时:

CDC* pDC = GetDC();

出现标题中的问题,因为自己没有指定此设备上下文环境是哪个窗口的(没有获取某个窗口的句柄),即编译器不知道在哪个窗口对象中获取DC,且自定义的类又不是从CWnd类派生,所以程序会默认调用Windows Api中的GetDC函数:

WINUSERAPI

HDC

WINAPI

GetDC( HWND hWnd );

Windows Api函数原型中形参必须是某个窗口的句柄,不能为空,所以会出现标题中的错误,那么如何将视类窗口的指针传递给自定义的类中去使用呢?

解决方案:

在自定义的类MyXX.h 头文件声明一个CWnd* 指针变量p_WndView,再声明一个函数:void SetWindowWnd(CWnd* pWnd),在cpp文件中实现这个函数:

void  CMyXX::SetWindowWnd(CWnd* pWnd)

{

p_WndView = pWnd;

}

在CxxView的头文件中包含MyXX.h这个头文件,且声明一个public的CMyXX的对象变量m_xx,然后在CxxVew.cpp中就可以使用m_xx.SetWindowWnd(this)来传递这个视图窗口的指针到CMyXX中的p_WndView变量中,在MyXX.cpp中就可以在图像显示的函数中使用:

CDC* pDC = p_WndView->GetDC();

获取视类窗口的设备上下文指针,进而获取句柄,接下来的操作就简单了

MFC开发过程中,自定义的类中做分割窗口的图像显示,GetDC出现问题:function does not take 0 parameters?相关推荐

  1. 在python中定义类时、运算符重载_自定义 Python 类中的运算符和函数重载(上)...

    如果你对 Python 中的str对象使用过 + 或 * 运算符,你一定注意到了它的操作与 int 或 float 类型的区别: 你可能想知道同一内置运算符或函数如何对不同类对象进行不同操作的.这分别 ...

  2. python中mod运算符_自定义 Python 类中的运算符和函数重载(上)

    Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发. 如果你对 Python 中的str对象使用过 + 或 * 运算符,你一定注意到了它的操作与 int 或 f ...

  3. 在php中自定义一个类的关键字为( ),精读《未来简史》尔雅章节测验答案

    精读<未来简史>尔雅章节测验答案 更多相关问题 [单选题]当采用环刀法取样时,取样点应位于每层土的()深度处. A. 1/2 B. 1/3 C. 1/4 D. 2/3 [填空题]OSI/R ...

  4. python buildin 中的一些类中为什么方法的内容都是pass?

    python buildin 中的一些类中为什么方法的内容都是pass? 文章目录: 一.看到的一些方法的定义都是pass 二.如何查看Python的源代码 python 的源代码是用C语言写的 一. ...

  5. C++中两个类中互相包含对方对象的指针问题

    前几天很不爽,因为C++中两个类中互相包含对方对象的指针编译时提示某一个类未定义...所以我就想啊想,这样也对,我的头文件都有#ifndef的,包含了一次就不能再包含了,以为就实现不了这样的功能,于是 ...

  6. springboot 项目中在普通类中调用dao层的mapper 出现空指针异常

    springboot 项目中在普通类中调用dao层的mapper 出现空指针异常 参考文章: (1)springboot 项目中在普通类中调用dao层的mapper 出现空指针异常 (2)https: ...

  7. JSP中调用java类中的方法

    JSP中调用java类中的方法 1.新建一个项目,在src文件夹下添加一个包:如:test 2.再在包中添加一个类:如 package test; public class conDatabase { ...

  8. WPF中自定义的DataTemplate中的控件,在Window_Loaded事件中加载机制初探

    原文:WPF中自定义的DataTemplate中的控件,在Window_Loaded事件中加载机制初探 最近因为项目需要,开始学习如何使用WPF开发桌面程序.使用WPF一段时间之后,感觉WPF的开发思 ...

  9. java bufferedread_java中关于bufferedreader类中read方法

    java中关于bufferedreader类中read方法 关注:58  答案:2  mip版 解决时间 2021-01-14 05:40 提问者孤城古巷 2021-01-13 06:28 如下.此时 ...

最新文章

  1. HDU1753 大明A+B(大数相加)(Java题解)
  2. Java线程之线程池
  3. Zabbix服务端的安装及使用
  4. 机器学习深度学习论文写作工具推荐
  5. 【PAT甲级 ArrayList存放class】1011 World Cup Betting (20 分) Java版 3/3通过 四舍五入保留两位小数
  6. ewebeditor在上传文件时,总是提示“请选择一个有效的文件”,
  7. 汇编分析golang循环
  8. mysql查询修改数据类型_MySQL增删改查及数据类型
  9. 【转】SQLServer数据库还原数据库后因孤立用户问题导致无法登陆的处理
  10. MySQL高阶面试题
  11. 低延时互动直播双十一优惠活动
  12. 《AIX 5L 系统管理技术》学习笔记之第七章设备管理
  13. 傻妞机器人对接TG【无需QQ】
  14. html特殊符号的例子,CSS/HTML 开发中常用 特殊符号(常用字符实体) 相关扩展(琐碎知识点整理)...
  15. Vulnhub_COFFEE ADDICTS: 1
  16. 全球公开的DEM数据产品
  17. 国科大学习资料--人工智能原理与算法-第四次作业解析(学长整理)
  18. 杰里混响调MIC增益和深度【篇】
  19. VS2017中配置QT5.12开发环境
  20. Robot Toolbox (一):Puma机器人仿真

热门文章

  1. 利用MATLAB实现正态参数估计及分布检验
  2. QA:PTCRB认证、PTCRB报告、美国运营商准入认证、国际认证
  3. 【JS】global.js
  4. 前端公共图表数据大盘方案
  5. 【解决】VLC Player播放视频有声音无画面的问题-禁止硬件加速
  6. 【第三步】了解关于CSDN开通VIP后的权益说明
  7. 1613-3-傅溥衍 总结《2016年11月17日》【连续四十八天总结】
  8. 王世吹摩托车是假的吧?中国达人秀上吹了,现实没有
  9. 联想电脑尺寸在哪里看_联想笔记本主机编号在哪 联想笔记本主机编号怎么查? (全文)...
  10. 每个 Python 开发者必备的5款 VScode 拓展工具包!