说说Win7的Aero效果

最近看到别人写的一个例程,就是把控制台弄成了全透明,我把源码下载下来做了研
究。

其实从Vista版本之后,WindowsAPI里面增加了几个函数,用于Aero效果的实现。有
两个最主要的:DwmExtendFrameIntoClientArea和DwmIsCompositionEnabled。

DwmIsCompositionEnabled用于检测系统的桌面组合功能是否打开。
DwmExtendFrameIntoClientArea用于开启控制窗体的玻璃效果,他需要一个名为
MARGINS的结构作为参数,表达的是窗口四周的边框。我们实际上就是要非客户区的
边框往内扩展,等到MARGINS足够大之后,就变成全玻璃特效的了。

下面是两个实例:

更多内容

C#多线程Invoke示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public void DoWork()
{
//错误示例:
textbox1.text = "Hello";

//正确示例:
textbox1.Invoke((str) => textbox1.text = str, new Object[]{ "Hello" });
}

private void button1_Click(object sender, EventArgs e)
{
//...
Thread tr = new Thread(new ThreadStart(DoWork));
tr.Start();
//...
}