当前位置:开发平台->Windows ->Windows零基础入门:4.2 获取窗口类信息之查询窗口类名称ID

原创版权标志Windows零基础入门:4.2 获取窗口类信息之查询窗口类名称ID

作者:codexia  发表时间:2015-10-16  阅读:
[摘要] ATOM类型的窗口类ID就对应的注册窗口类的窗口类名称,窗口类结构体中的每一个成员都可以获取和修改。因为ATOM是大家所不熟悉的,前面也没有介绍,这里就花了很大的篇幅来详细介绍了。同时也详细介绍了INT资源ID转换宏MAKEINTRESOURCE的定义和使用方法。
   上一节课《Windows零基础入门:4.1 获取窗口类信息之查询窗口类函数详细介绍》,我们详细介绍了获取窗口类信息的函数的参数等知识。函数的使用很简单,关键是函数背后的技术知识背景,很少有人深入了解过。我们就对此做深入的探讨学习。
    在注册窗口类的时候,在窗口类结构体的成员lpszClassName填写的是窗口类的名称,就是一个字符串。通过这个窗口类名称字符串,我们就可以找到窗口类,进而可以使用窗口类名称来创建一个窗口。
    那么,在窗口类有效的范围内,窗口类名字是唯一的。只要我们用这个窗口类名称来创建窗口,总会创建出这个特定样式的窗口。
    然而窗口类信息注册好后,生成了一个ID,是一个数字,就像一个表格的序号一样的,这个ID的类型就是ATOM类型。我们现在来认识一下ATOM类型。
    ATOM英文是原子的意思,表示最小的意思。我们可以理解为这个类型是Windows中的基本类型,就好像C/C++中的int类型一样。我们看看ATOM类型最根本的数据类型是什么,从语言级别来看。
    在VS2015中,我们查看ATOM的定义,如下:


typedef WORD ATOM;//BUGBUG - might want to remove this from minwin
typedef unsigned short WORD;
    对于ATOM,没有找到直接的解释,但是我们通过在VS中查看定义,可以看到这个类型是这么定义的。ATOM时友WORD类型重定义的,而WORD是由unsigned short类型重定义的,所以根本上,ATOM就是unsigned short类型的。然而注释中却标注BUGBUG,并解释说可能将这个类型从minWin系统版本中移除。 ...【登录后阅读更多内容】
微信扫码关注公众号CPP技术网,微信号cpp_coder,关注我们的公众号,阅读更多精彩内容!每天还可以领取大红包哦!!!每天还可以领取大红包哦!!!每天还可以领取大红包哦!!!
文章来源:C++技术网原创文章版权为网站和作者共同所有,会员文章禁止转载。非会员文章转载做好本文超链接即表示授权转载。通过文章下面的分享按钮可以自由分享所有文章。


  • war001    2015/10/16 21:21:54回复


  • Black|boy    2015/11/14 22:23:07回复
    GetClassLong中的hwnd是创建窗口后返回的句柄吗?如果是的话,那说的通过窗口类ID创建窗口怎么弄?我只懂先创建窗口才能获取窗口类ID,或者注册的时候就获取了然后再创建?求解答

  • Black|boy    2015/11/14 22:23:08回复
    GetClassLong中的hwnd是创建窗口后返回的句柄吗?如果是的话,那说的通过窗口类ID创建窗口怎么弄?我只懂先创建窗口才能获取窗口类ID,或者注册的时候就获取了然后再创建?求解答codexia: 回复 Black|boy 说:GetClassLong中的hwnd是创建窗口后返回的句柄,这个是的。通过窗口类ID创建窗口就是:CreateWindow(MAKEINTRESOURCE(atomCls)...文章没看完整。窗口类ID是注册窗口类后就有了的。【回复】Black|boy: 回复 codexia说:。。。我懂了,谢谢啦【回复】

  • wuyuan2011woaini    2016/3/16 11:52:48回复
    2016-03-16

返回顶部

在线提问
问题标题:
问题描述:(简陋的描述会导致问题被最后回答、没有针对性回答甚至无法解答。请确保问题描述的足够清楚。)