通知:欢迎光临,有建议或发现bug,点此留言
首页> win32教程VIP> Windows零基础入门:4.4 获取窗口类风格和判断窗口类风格是否存在

Windows零基础入门:4.4 获取窗口类风格和判断窗口类风格是否存在

codexia 2015-10-26 21:11:21 1507 会员文章,禁止转载
简介本节课讲了基本的获取风格的方法,然后讲了风格的使用背景知识,然后讲解了使用位操作判断获取的窗口类是否含有特定的窗口类风格。并讲述了判断的本质和一些项目经验和人生道理。这节课不仅学到编程技术,更多道理都是很受益的哦。
打开支付宝,搜索【514124385】可领红包哦,最高99元!!!,每天都可领。
    前两节课介绍了获取窗口类ID和窗口背景画刷句柄的方法。分别见《Windows零基础入门:4.2 获取窗口类信息之查询窗口类名称ID》和《Windows零基础入门:4.3 获取窗口类背景画刷句柄和使用窗口类背景画刷句柄》,因为最近工作上在技术攻关,所以比较忙,耽误了更新教程。请先复习前面的课程,然后继续看咯。我们现在一有时间就更新教程。
    那么今天来讲讲如何获取窗口类的窗口类风格吧。
    其实,这几个成员的获取,都差不多。但是为什么我要讲呢?如果是简单的,一方面是为了完整性,另一方面可以借机融入开发经验,可以介绍多一点背景知识,这些对于我们日后的开发都是有用的。
    窗口类风格成员的赋值操作,在前面讲过了。很多背景知识也介绍过了,如果你还不清楚,请回去再好好看看哦。我们介绍的会有更多的知识,不会重复说的。如果真的有些地方重复提到了,说明你需要特别注意,一定要将这些技术点理解透哦。
    窗口类风格的获取,还是用函数GetClassLong咯。传入的标志为GCL_STYLE,使用的代码如下:
DWORD dwStyle = GetClassLong(hwnd,GCL_STYLE);

     是的,这样就得到了需要的窗口类风格成员的值了。不过,这个才是刚刚开始。得到了不一定会用哦。这种情况太常见了。在以后的编程中,你会经常发现千辛万苦得到了一东西,然后才发现,这才是刚刚开始。如何使用,这个东西是什么,怎么用都是问题。别慌,遇到这种情况,有时候挺打击的,不过,你已经成功了走出了第一步。做底层开发的,经受挫折最基本的。这不比上层的应用开发,只需要使用框架的东西,轻松都解决了。然而那样总是学不到真东西的。所以,我们才要深入学习,而在这个过程,你一定会碰见各种各样的打击挫折。千万不要因为不知道一个函数怎么使用就放弃了。如果这样的话,你永远也做不好一件事。不会可以查MSDN,也可以百度,还可以加入群聊问人。只要你有心,总是有办法弄明白的。
    我们要学会使用窗口类风格,我们需要在多学点背景知识。你可能会想,得到了一个DWORD值,怎么用呀?似乎总不能像一个值代表一个风格一样,那样多方便呀。但是,那样就会真正麻烦咯。因为风格有很多,而且就一个标志而已,一个数值就可以存下了。更应该说是,一个位就可以表示了。如果每一个风格都用一个整数表示,那最后一万多个风格的话,那岂不是要写一万行的类型定义呀。这样实在太低效了,也不好管理。如果多设置一些风格,存在窗口类中,那多占内存呀。
    所以Windows中采用一个整数存数所有的风格,一个位存储一个,用1表示含有了风格,用0表示没有是使用这个风格。那么你想想,一个32位或者64位的整数,就可以存储32个或者64个风格。而且一个整数中可以同时最多纪录32个或者64个风格哦。这就是位的好处,充分利用内存资源。有时候,你不节省就非常浪费。32位的就是4个字节,就可以存储N多种风格组合,自己用排列组合来算吧,我数学不好。而如果用一个整数存储一个风格,不知道要用多少内存哦。
    DWORD这个类型是大家开始接触的,所以可能不太熟悉。1字节=8位,1字=两个字节,双字=2字(4字节)。在Windows中,位用bit表示,字节的类型是BYTE,字的类型为WORD,双字的类型就是DWORD,即double word,两个字。这些类型是Windows里对语言类型的重定义类型。你可

登陆系统,查看更多
会员文章,禁止转载

课程菜单

猜您感兴趣