CWnd指针和HWnd

2023-11-07

HWND是Windows系统中对所有窗口的一种标识,即窗口句柄。这是一个SDK概念。   
CWnd是MFC类库中所有窗口类的基类。微软在MFC中将所有窗口的通用操作都封装到了这个类中,如:ShowWindow等等,同时它也封装了窗口句柄即m_hWnd成员。

由HWnd得到CWnd*:
CWnd wnd;
HWnd hWnd;
wnd.Attach(hWnd);
通常一个窗口资源已经和一个CWnd类的对象关联起来的,由于一般来说这个类是自己创建的,所以自然知道怎么得到指向这个类的指针。如果没有就创建一个CWnd对象,将这个对象与窗口资源的hWnd句柄关联起来。(如上边的语句)。如果用
static CWnd*   CWnd::FromHandle(HWND   hWnd) ;
则返回值是一个暂时的CWnd对象,并且我们确保返回值为非空,也就是hWnd是有效的。 
static CWnd*   CWnd::FromHandlePermanent(HWND   hWnd)  ;
返回的是一个永久的对象。只有在返回的CWnd在类表里已经存在是返回值为非空。

由CWnd获取HWnd就容易多了,因为它的一个成员m_hWnd就是所对应窗口的句柄。
wnd->m_hWnd。
 ——————————————————————————————————————————————————————————

CWnd* 和 HWND 差别很大

HWND 是 SDK 定义的类型, 是一个无确切意义的 32-bit 值,在调用 API 时用于指代窗体。

CWnd* 是一个有确切意义的指针,指向一个 MFC 窗体类 CWnd 的实例。因为 MFC 对 SDK 做了封装,大部分调用都可以用 CWnd* 作为参数,所以很

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CWnd指针和HWnd 的相关文章

  • shell进程的并行执行

    有没有一个工具可以在 Windows 批处理文件中并行执行多个进程 我发现了一些有趣的 Linux 工具 parallel http mi eng cam ac uk er258 code parallel html and PPSS ht
  • CTRL+C 和 CTRL+Break 不同吗?

    我一直认为它们绝对是一样的 但我刚刚在以下位置找到了一些值 CTRL C EVENT 和 CTRL BREAK EVENT设置控制台Ctrl处理程序 http msdn microsoft com en us library ms68601
  • C 中的 NULL 是否需要/定义为零?

    在我的 GCC 测试程序中 NULL 似乎为零 但维基百科说NULL只需要指向不可寻址的内存 有编译器做吗NULL非零 我很好奇是否if ptr NULL 是比更好的练习if ptr NULL is guaranteed to be zer
  • 识别 Windows 版本

    我正在编写一个打印出详细 Windows 版本信息的函数 输出可能是这样的元组 32bit XP Professional SP3 English 它将支持 Windows XP 及更高版本 我一直坚持获取 Windows 版本 例如 专业
  • Windows 终端中的图标和背景图像字段无法识别父进程目录

    Windows 终端版本 1 12 10732 0 Windows 内部版本号 19043 1645 Issue 如果这个问题已经在其他地方得到解决 请原谅我 但我意识到当Use parent process directory被检查 Co
  • 读取进程的进程内存不会返回所有内容

    我正在尝试扫描第三方应用程序的内存 我已经查到地址了 现在是在0x0643FB78 问题是 从那以后我就再也爬不上去LPMODULEENTRY32 gt modBaseAddr is 0x00400000 and LPMODULEENTRY
  • 捕获由纯 C++ dll 中的 MFC 应用程序生成的 Windows 消息

    首先 这可能吗 我有一个与某些硬件接口的第三方 dll 它是用MFC编写的 我 从 dll 供应商处 收到了一个示例 Visual Studio 2010 解决方案 该解决方案只有一个项目 调用相关第三方 dll 的 MFC 应用程序 ex
  • 更改Word文档中的文本字体颜色

    我写了一个小测试词插件 但找不到方法改变字体颜色一句话 这是我的代码 var wordsList this Application ActiveDocument Words wordsList i Font TextColor WdColo
  • 在 Windows 中使用 OpenAI API 密钥时出现问题

    我必须在自定义数据集上微调 OpenAI 模型 我已经创建了 jsonl 格式的数据集 我在 Windows 命令行上使用以下命令 set OPENAI API KEY
  • 如何在 jQuery 中检查 null 对象

    我正在使用 jQuery 我想检查页面中是否存在某个元素 我写了以下代码 但它不起作用 if btext i null alert btext i text btext i text Branch i 如何检查元素是否存在 检查jQuery
  • 类似于eternity的C++对象持久化库

    我正在寻找一个 C 对象持久库来替换永恒图书馆 http sourceforge net projects eternity it 我已经用它制作了大约一天的原型 永恒图书馆的能力不足 我创建了一个与此类似的对象层次结构 我有一个std l
  • DISM.exe 返回代码?

    我有一个程序调用 dism exe 程序 它在后台运行一些命令 现在 我只检查返回代码 0 或其他任何内容 以显示进程失败或成功 我可以用什么来交叉检查返回代码以获得准确的返回错误 DISM 参考了哪些回报 评论中提供的链接DISMAPI
  • Mac 操作系统的 windows.h 替代品

    早上好 我正在使用 Codeblock c 程序进行编程 但是 我需要使用窗口 h and conio h MacBook 上没有这个头文件 拜托 你能帮我吗 不起作用的来源 void gotoxy int x int y COORD co
  • 如何在Python中打印颜色/颜色?

    我对 Python 和 StackOverflow 都是新手 需要一点帮助 我想用 Python 打印颜色 并在 Google 上搜索过 但运气不佳 每次我都很困惑 但都没有成功 这是我输入的代码 answer input Wanna go
  • PHP 构造函数返回 NULL

    我有这个代码 是否有可能User对象构造函数以某种方式失败 以便 this gt LoggedUser被分配了一个NULL构造函数返回后值和对象被释放吗 this gt LoggedUser NULL if SESSION verbiste
  • 批处理:在特定程序中打开特定文件?

    当记事本是 txt 文件的默认程序时 如何告诉 Windows 在写字板中打开 C test test txt 接受的答案对我不起作用 我不确定这是因为我试图运行的程序 还是因为路径中有空格 即使我用引号引起来 或者其他原因 不管怎样 我可
  • Scala 和 Spark:Windows 上的 Dataframe.write._

    有人设法使用 Spark 写入文件 尤其是 CSV 吗 数据框 http spark apache org docs latest api scala index html org apache spark sql Dataset在 Win
  • 如何在 C# 中从工作线程发布 UI 消息

    我正在用 C 编写一个简单的 winforms 应用程序 我创建了一个工作线程 我希望主窗口响应线程完成其工作 只需更改文本字段中的一些文本 testField Text Ready 我尝试了事件和回调 但它们都在调用线程的上下文中执行 并
  • 链接到大地址感知 DLL

    假设我有一个使用 LARGEADDRESSAWARE 链接器标志集构建的 DLL 现在我有一个动态链接到该 DLL 的应用程序 这是否会使我的应用程序具有大型地址意识 如果不是 那么为任何 DLL 设置此标志是否有意义 讨论here htt
  • Windows 控制台“ESC[2J”并没有真正“清除”屏幕

    我知道这类问题经常被问到 但我认为这个问题有点不同 需要被问到 新的 Windows 控制台支持 ANSI VT100 控制代码 ANSI VT100 控制代码 http www termsys demon co uk vtansi htm

随机推荐

  • 基于BIO模式下通信项目

    文章目录 功能清单 代码结构 服务端设计 接收多个客户端逻辑 接收登陆消息及监测离线 接收群聊消息 接收私聊消息 代码实现 客户端设计 启动客户端界面 登录 刷新在线 客户端发送消息逻辑 代码实现 功能清单 1 客户端登陆功能 可以启动客户
  • CMake入门学习+实战<三> 静态库与动态库构建

    文章整合自 CMake Practice http sewm pku edu cn src paradise reference CMake 20Practice pdf CMake 官方文档 https cmake org cmake h
  • 讯为IMX6ULL-QT系统移植之交叉编译QT源码和触摸源码

    一 源码下载 QT 官网下载 Index of new archive qt 5 7 5 7 1 二 编译环境 开发环境 Ubuntu18 04 编译器 arm 2014 05 29 arm none linux gnueabi i686
  • What version of SQL Server do I have?(转)

    原文链接 http sqlserverbuilds blogspot com What version of SQL Server do I have This unofficial build chart lists all of the
  • C#值类型构造函数注意事项

    C 语言相比其他支持CLR的语言来说 对于值类型的构造有个特殊的地方 即不允许值类型有无参数的构造函数 所以当一个值类型没有提供任何构造函数的时候 是不能够对字段在定义中进行初始化 如下 public struct Point public
  • 配置Nginx和php-fpm用Sock套接字连接时,找不到php-fpm.sock的原因

    php5 3之后的版本 php fpm conf里的listen的默认配置是127 0 0 1 9000 就不会生成php fpm sock 因此如果需要Nginx里的配置有链接tmp php fpm sock的话 需要将listen的地址
  • ElasticSearch查询工具类分享

    文章目录 1 sql转ES工具 2 Kibana VS Postman ApiPost 3 es json 转java 4 ElasticSearch查询工具类 esHelper 5 在IDE 控制台看到效果如图 前言 最近需要对ES数据进
  • 华为OD机试真题 Java 实现【数字加减游戏】【2023Q1 200分】

    一 题目描述 小明在玩一个数字加减游戏 只使用加法或者减法 将一个数字s变成数字t 每个回合 小明可以用当前的数字加上或减去一个数字 现在有两种数字可以用来加减 分别为a 其中b没有使用次数限制 请问小明最少可以用多少次a 才能将数字s变成
  • Visual Studio 2015 Tools for Unity与VS2015的bug

    之前使用Unity4 X配合的是Visual Studio 2013 Tools与VS2013的时候 是可以打开项目属性的 更换了Unity5 x配合Visual Studio 2015 Tools for Unity与VS2015的时候
  • 基于springboot开发的学生考勤管理系统【毕业论文,源码】

    基于springboot开发的学生考勤管理系统 如需更多资料请前往文章底部获取联系方式 系统设计主要功能 通过市场调研及咨询研究 了解了学生考勤管理系统及管理者的使用需求 于是制定了管理员 教师和学生等模块 功能结构图如下所示 E R图 考
  • 原子操作 CAS

    参考 https zhuanlan zhihu com p 400817892 https www bilibili com read cv10686883 https blog csdn net www dong article deta
  • nacos默认用户名密码_Nacos 权限控制介绍及实战

    转自 阿里巴巴中间件 作者 朱鹏飞 Nacos权限控制设计方案 方案背景 Nacos 自开源依赖 权限控制一直需求比较强烈 这也反应了用户需求将 Nacos 部署到生产环境的需求 最新发布的 Nacos 1 2 0版本已经支持了服务发现和配
  • 文件夹选择对话框 JS实现的两种方案

    文件夹选择对话框 JS实现的两种方案 browseFolder js 该文件定义了BrowseFolder 函数 它将提供一个文件夹选择对话框 以供用户实现对系统文件夹选择的功能
  • 监听器,过滤器,拦截器

    参考博文 文章目录 作用 三者区别 启动顺序 拦截器 简要说明 实现接口 HandlerInterceptor 自定义拦截器 配置拦截器 过滤器 简要说明 在springboot 启动类添加该注解 ServletComponentScan
  • 在word如何显示左侧的索引目录

    https jingyan baidu com article 2c8c281df82bd80008252a23 html
  • 自动控制原理知识点梳理——6.线性系统的校正方法

    主要内容是书上6 1 6 2 6 3 目录 一 系统的设计与校正问题 1 控制系统的性能指标 2 系统带宽的选择 3 校正方法 4 基本控制规律 1 比例 P 控制规律 2 比例 微分 PD 控制规律 3 积分 I 控制规律 4 比例 积分
  • osgEarth的Rex引擎原理分析(六十)TileNode与DrawTileCommand的关系

    目标 五十五 中的问题131 TileNode与DrawTileCommand的关系 DrawTileCommad的几何图形和瓦片编号从TileNode来 最终绘制是用DrawTileCommand的draw函数来实现的 DrawTileC
  • 服务器显示post是什么意思,post请求 post请求是什么

    在HTTP协议的请求类型中 post请求是一个比较常见的请求类型 也是一个使用比较频繁的请求 那么这一个请求到底是什么意思呢 这就是今天我们所要了解的内容 快来一起看一看吧 post请求 post请求的含义 向指定资源提交数据进行处理请求
  • Golang Channel通道使用简介

    Golang Channel通道使用简介 一 channel简介 chan 是 Golang 中内置的数据类型 不像 Mutex 等需要引入 它是 first class 类型 在 Go 的并发控制中起着相当重要的作用 chan 的思想来自
  • CWnd指针和HWnd

    HWND是Windows系统中对所有窗口的一种标识 即窗口句柄 这是一个SDK概念 CWnd是MFC类库中所有窗口类的基类 微软在MFC中将所有窗口的通用操作都封装到了这个类中 如 ShowWindow等等 同时它也封装了窗口句柄即m hW