关于窗口风格的设置

窗口风格的历史

在CreateWindowEx的参数中,有几个参数是64位的,它们用来指定窗口的风格。那么,这个64位整数是怎样和窗口风格对应起来的呢?

Windows定义了dwStyle参数的高16位,同时,也定义了dwExStyle参数的全部位数。dwStyle参数的低16位由具体的窗口类(由RegisterClass创建)来确定。
在Windows 95上,有一些应用程序开发者发现有一些dwExStyle参数的部分位没有被系统使用,他们会使用这部分位用于其他目的。后来,我们赋予了这些位其他的属性(例如WS_EX_TOOLWINDOW),因为这个原因,应用程序会表现的很奇怪。所以,我们建议开发者不要使用这些位,因为系统会使用它们,如果应用程序也使用它们的话,则会造成一些意想不到的问题。

如果你需要多于16位的窗口风格信息,你可以设计自己的窗口类,然后在lpParam参数中传递自定义的信息,并调用CreateWindow(Ex),然后我们可以在CREATSTRUCT结构体中的lpCreateParams成员中获取到这个自定义的信息。

另外,还可以通过自定义消息来设置其他的一些特定窗口风格,例如列表控件中的LVM_SETEXTENDEDLISTVIEWSTYLE消息。

总结

如何确保二进制兼容:不要改已经写的函数,新增一个Ex版本。

猜你喜欢

转载自blog.csdn.net/mmxida/article/details/108157010
今日推荐