一、关于窗口句柄

首先讲一下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,窗口指针相关推荐

  1. MFC 窗口句柄,窗口ID,窗口指针

    窗口句柄 资源标识记号 何为资源?当你创建了一个对话框,那么这个对话框所有成员就是该对话框的资源. 将该对话框的所有资源封装在一块,即一个类,这个类就占据了一块内存. 内存可由指针指向内存. 句柄就是 ...

  2. VC++的窗口句柄和窗口ID

    http://blog.sina.com.cn/s/blog_4cd5d2bb0100nb5d.html VC++的窗口句柄和窗口ID(2010-10-22 23:42:28) 句柄是窗口资源的标识, ...

  3. 【转】VC++的窗口句柄和窗口ID

    http://blog.sina.com.cn/s/blog_4cd5d2bb0100nb5d.html VC++的窗口句柄和窗口ID(2010-10-22 23:42:28) 句柄是窗口资源的标识, ...

  4. MFC 句柄Hwnd 与 窗口Wnd的联系

    CWnd是MFC类库中所有窗口类的基类.微软在MFC中将所有窗口的通用操作都封装到了这个类中,如:ShowWindow等等,同时它也封装了窗口句柄即m_hWnd成员. 由HWnd得到CWnd*: CW ...

  5. wxWidgets:窗口 ID

    wxWidgets:窗口 ID wxWidgets:窗口 ID 数据类型 使用 wxWindowIDRef wxWidgets:窗口 ID wxWidgets 的各种控件和其他部分都需要一个 ID. ...

  6. c语言窗口内鼠标位置,Gtk获取窗口内光标 | 指针 | 鼠标的绝对和相对坐标,绝对和相对位置...

    获取指针绝对坐标和窗口内的相对坐标 方法一:直接调用函数获得 int ax, ay; /* absolutely postition*/ int wx, wy; /* The absolutely p ...

  7. MFC学习笔记--底层窗口

    底层窗口 基本说明 概念 过程 简单实例 文化建设 基本说明 windows应用程序是c语言实现的,所有windows函数都在windows.h中声明 概念 SDK:software developm ...

  8. C++, ID、指针、handle (void *)的区别

    原文链接: http://hi.baidu.com/dandanfeng160/blog/item/4eaa3df5215bc42dbd310955.html 在Windows程序设计中,句柄是无法精 ...

  9. Win32-子窗口-父窗口-窗口所有者

    文章目录 1.窗口关系 2.窗口类型的说明和限制 3.几个相关函数的说明 4.作者答疑   在windows系统中,每个窗口对象都对应有一个数据结构,形成一个list链表.系统的窗口管理器通过这个li ...

  10. TCP/IP传输层协议实现 - TCP接收窗口/发送窗口/通告窗口(lwip)

    1.tcp通告窗口/接收窗口/发送窗口 接收端有一个接收窗口大小,接收端只能接收这么多数据,接收窗口的数据需要被上层接收后才释放更大接收空间,才可以接收更多数据:接收窗口之前的数据已经被接收,再次接收 ...

最新文章

  1. 山东人为什么爱用倒装句?没有吧我觉得。
  2. linux下好用的软件
  3. 吴麒pdf 自动控制原理下_自动控制原理 第五讲 频域分析(下)
  4. 谋定国家5G战略的基石-工信部韦乐平:经信研究网络领先
  5. C/C++报错:全局变量重定义或是多次定义
  6. Title:eNSP 映射到外网
  7. 35岁程序员惨遭裁员,找了6份兼职,晒出收入网友:“打工皇帝”
  8. nodejs文件的读取
  9. 力扣35,搜索插入位置(JavaScript)
  10. 由c#事件监听、回调函数引发观察者模式
  11. pythonmkdir语法错误_转--python使用mkdir函数出现错误WindowsError:[Error3]
  12. 动态通讯录(动态内存开辟)(C语言)
  13. Python之struct详解
  14. 使用pyspark 分析日志
  15. html商品分类列表页面,仿京东商城系列7------商品分类页面
  16. 50件关于学霸与学渣的小事
  17. cad镜像后标注尺寸数字反了_急!CAD镜像后文字反向应该怎么处理?
  18. 创宇区块链|Inverse Finance 安全事件分析
  19. 计算机毕业设计ssm大学生比赛信息管理系统38iiq系统+程序+源码+lw+远程部署
  20. 轻巧的jQuery提示框插件Tipso演示

热门文章

  1. js怎么实现ftp上传文件到服务器,js ftp上传文件到服务器
  2. WinRAR 曝出代码执行漏洞,你的官方中文无广告版该升级了
  3. Halcon 第六章◆第6节:光学字符识别OCR
  4. Trapcode Particular 5(合集·中英对照)
  5. 打开SVN server图形化管理界面
  6. 采用Turbo编码的图像传输试验(AWAG信道,matlab实现)分别验证了不同交织器类型,交织深度对turbo码性能的影响
  7. M6(面试)-01-牛客网Java面试题集锦
  8. Podfile 文件写法
  9. Visual Studio 安装 FLTK
  10. 域控激活计算机用户,Windows2008AD 域控安装(示例代码)