以前我想创建一个可点击的表单时,曾经考虑使用平台调用来设置扩展窗口样式(user32.dll
中的GetWindowLong
/ SetWindowLong
)。
现在我想让它在Alt+Tab窗口列表中不可见,并找到了一个示例重写CreateParams
而不是使用GetWindowLong
/SetWindowong
来设置扩展窗口样式。
现在我的代码是这样的:
protected override CreateParams CreateParams
{
get
{
CreateParams cp = base.CreateParams;
cp.ExStyle |= 0x80000 /* WS_EX_LAYERED */ | 0x20 /* WS_EX_TRANSPARENT */ | 0x80/* WS_EX_TOOLWINDOW */;
return cp;
}
}
现在看起来不需要任何平台调用。
所以我的一些问题:
- 在Windows上会有任何功能上的区别吗?(只是说我现在甚至没有XP机可以尝试。)
- 现在我没有平台调用,我的程序是否可以在Linux / Mac上的Mono上运行?(如果我现在可以尝试,我就不会在这里问你了。)
Control.CreateParams
在msdn上出现并且有一个操作窗口样式的示例。那么为什么有些在线“示例”和StackOverflow的答案告诉人们使用GetWindowLong
/SetWindowLong
?