关于MFC窗口句柄,窗口ID,窗口指针
一、关于窗口句柄
首先讲一下MFC中句柄的概念,句柄是一种资源标识,他是一个整数,由操作系统分配,用户(程序员)没法指定。举个例子来说,当你创建了一个对话框,那么系统就会为这个对话框分配一定的资源,并且为这个资源分配一个整数来标识这块资源,那么这个整数就是句柄。 什么是资源,资源当然就是内存,堆栈。对话框的所有资源封装在一个类中,形成自己的数据结构,这个数据结构占用系统的一块内存。
其次,句柄用HANDLE表示, 定义方式,HANDLE hWnd; 其实句柄的实现方式就是指针, 句柄是一种指针的指针,系统中应该会有一张资源标识符表, 资源标识符表中放的应该就是指向资源的指针,通过句柄可以找到这个存放资源指针的地方。
最后,窗口句柄的使用。常用的是通过窗口句柄投递一个消息给窗口,使得窗口可以响应一个消息。比如:
::SendMessage(GetDlgItem( ID )->m_hWnd,WM_ONEMSG,(WPARAM) RXBuff, (LPARAM) type);
二、关于窗口ID
窗口ID是窗口标识的一种别名,有程序员自己定义,比如:IDD_MONITOR_DIALOG。
三、关于窗口指针
我认为窗口指针是指向对话框资源的指针,窗口的资源封装在一个类中,窗口指针就是指向这个类的指针,通过这个指针可以访问类中所有的资源(各种成员函数,成员数据)。获取窗口指针的方法:GetDlgItem( ID ), 返回类型是CWnd *,使用的时候需要强制类型转换为自己的类类型指针。比如:窗口类名为CTestDlg, 窗口ID为IDD_MONITOR_DIALOG。那么, CTestDlg *p = (CTestDlg*)GetDlgItem( IDD_MONITOR_DIALOG );通过指针p就可以访问类中的各种资源了。
控件其实也是一种窗口,所以以上的概念也适合控件。
关于MFC窗口句柄,窗口ID,窗口指针相关推荐
- MFC 窗口句柄,窗口ID,窗口指针
窗口句柄 资源标识记号 何为资源?当你创建了一个对话框,那么这个对话框所有成员就是该对话框的资源. 将该对话框的所有资源封装在一块,即一个类,这个类就占据了一块内存. 内存可由指针指向内存. 句柄就是 ...
- VC++的窗口句柄和窗口ID
http://blog.sina.com.cn/s/blog_4cd5d2bb0100nb5d.html VC++的窗口句柄和窗口ID(2010-10-22 23:42:28) 句柄是窗口资源的标识, ...
- 【转】VC++的窗口句柄和窗口ID
http://blog.sina.com.cn/s/blog_4cd5d2bb0100nb5d.html VC++的窗口句柄和窗口ID(2010-10-22 23:42:28) 句柄是窗口资源的标识, ...
- MFC 句柄Hwnd 与 窗口Wnd的联系
CWnd是MFC类库中所有窗口类的基类.微软在MFC中将所有窗口的通用操作都封装到了这个类中,如:ShowWindow等等,同时它也封装了窗口句柄即m_hWnd成员. 由HWnd得到CWnd*: CW ...
- wxWidgets:窗口 ID
wxWidgets:窗口 ID wxWidgets:窗口 ID 数据类型 使用 wxWindowIDRef wxWidgets:窗口 ID wxWidgets 的各种控件和其他部分都需要一个 ID. ...
- c语言窗口内鼠标位置,Gtk获取窗口内光标 | 指针 | 鼠标的绝对和相对坐标,绝对和相对位置...
获取指针绝对坐标和窗口内的相对坐标 方法一:直接调用函数获得 int ax, ay; /* absolutely postition*/ int wx, wy; /* The absolutely p ...
- MFC学习笔记--底层窗口
底层窗口 基本说明 概念 过程 简单实例 文化建设 基本说明 windows应用程序是c语言实现的,所有windows函数都在windows.h中声明 概念 SDK:software developm ...
- C++, ID、指针、handle (void *)的区别
原文链接: http://hi.baidu.com/dandanfeng160/blog/item/4eaa3df5215bc42dbd310955.html 在Windows程序设计中,句柄是无法精 ...
- Win32-子窗口-父窗口-窗口所有者
文章目录 1.窗口关系 2.窗口类型的说明和限制 3.几个相关函数的说明 4.作者答疑 在windows系统中,每个窗口对象都对应有一个数据结构,形成一个list链表.系统的窗口管理器通过这个li ...
- TCP/IP传输层协议实现 - TCP接收窗口/发送窗口/通告窗口(lwip)
1.tcp通告窗口/接收窗口/发送窗口 接收端有一个接收窗口大小,接收端只能接收这么多数据,接收窗口的数据需要被上层接收后才释放更大接收空间,才可以接收更多数据:接收窗口之前的数据已经被接收,再次接收 ...
最新文章
- 山东人为什么爱用倒装句?没有吧我觉得。
- linux下好用的软件
- 吴麒pdf 自动控制原理下_自动控制原理 第五讲 频域分析(下)
- 谋定国家5G战略的基石-工信部韦乐平:经信研究网络领先
- C/C++报错:全局变量重定义或是多次定义
- Title:eNSP 映射到外网
- 35岁程序员惨遭裁员,找了6份兼职,晒出收入网友:“打工皇帝”
- nodejs文件的读取
- 力扣35,搜索插入位置(JavaScript)
- 由c#事件监听、回调函数引发观察者模式
- pythonmkdir语法错误_转--python使用mkdir函数出现错误WindowsError:[Error3]
- 动态通讯录(动态内存开辟)(C语言)
- Python之struct详解
- 使用pyspark 分析日志
- html商品分类列表页面,仿京东商城系列7------商品分类页面
- 50件关于学霸与学渣的小事
- cad镜像后标注尺寸数字反了_急!CAD镜像后文字反向应该怎么处理?
- 创宇区块链|Inverse Finance 安全事件分析
- 计算机毕业设计ssm大学生比赛信息管理系统38iiq系统+程序+源码+lw+远程部署
- 轻巧的jQuery提示框插件Tipso演示
热门文章
- js怎么实现ftp上传文件到服务器,js ftp上传文件到服务器
- WinRAR 曝出代码执行漏洞,你的官方中文无广告版该升级了
- Halcon 第六章◆第6节:光学字符识别OCR
- Trapcode Particular 5(合集·中英对照)
- 打开SVN server图形化管理界面
- 采用Turbo编码的图像传输试验(AWAG信道,matlab实现)分别验证了不同交织器类型,交织深度对turbo码性能的影响
- M6(面试)-01-牛客网Java面试题集锦
- Podfile 文件写法
- Visual Studio 安装 FLTK
- 域控激活计算机用户,Windows2008AD 域控安装(示例代码)