happytc 发表于 2011-1-20 00:09:35

GetWindowLong()返回的值,怎么知道有没有标题栏等?[已解决]

本帖最后由 happytc 于 2011-1-21 18:56 编辑

看了下函数原型,是返回32位值,但au3的好象把它转成了十进制了

比如:_WinAPI_GetWindowLong($hwd, $GWL_STYLE)
我要怎么得到这个返回值的窗口是不是带标题栏?
在C里我知道怎么搞,如:if ( GetWindowLong(hTop, GWL_STYLE) & WS_CAPTION )

在au3里怎么搞?
另外,在C里表达为~WS_CAPTION,在au3怎么表达的?
如在C里是:SetWindowLong(hwd, GWL_STYLE, GetWindowLong(hwd, GWL_STYLE) & ~WS_CAPTION);

happytc 发表于 2011-1-20 00:32:24

难道真的要我每个都去查下它的值,象$WS_CAPTION,再利用它的相反值来实现去掉标题栏:-0xC00000

这样也太麻烦了吧!

ceoguang 发表于 2011-1-20 14:40:27

明显标题不符
这是位运算符的转换
& 与运算
| 或运算
^ 异或运算
~ 非运算
> > 右移运算
< < 左移运算
对应应该是
BitAND
BitOR
BitXOR
BitNOT
BitRotate或者BitShift

happytc 发表于 2011-1-21 18:58:45

回复 3# ceoguang

谢了,发完帖后不久,就查到了au3怎么进行位运算了。
不知道有函数可以完成,还以为可以象C那样有直接的运算符呢!
页: [1]
查看完整版本: GetWindowLong()返回的值,怎么知道有没有标题栏等?[已解决]