目的就是程序的界面不动(无需最小化或者HIDE)但是在状态栏中的程序按钮消失。
一般来说,使用下面两个语句就可以了。
ShowWindow(Application.Handle,SW_NORMAL); //恢复显示
ShowWindow(Application.Handle,SW_HIDE);//隐藏
但是这两个语句不是百试百灵,我做的一个程序就不灵光了,怎样都找不出来原因,好容易在网上找到另外一个更加稳定的实现语句,如下:
隐藏时语句:
ShowWindow(Handle,SW_HIDE);
dwExStyle:=GetWindowLong(Handle,GWL_EXSTYLE);
SetWindowLong(Handle,GWL_EXSTYLE,dwExStyle OR WS_EX_TOOLWINDOW
AND NOT WS_EX_APPWINDOW);
ShowWindow(Handle,SW_SHOW);
恢复时语句:
ShowWindow(Handle,SW_HIDE);
dwExStyle:=GetWindowLong(Handle,GWL_EXSTYLE);
SetWindowLong(Handle,GWL_EXSTYLE,dwExStyle AND NOT WS_EX_TOOLWINDOW
or WS_EX_APPWINDOW);
ShowWindow(Handle,SW_SHOW);
注意里面的句柄不再是APPLICATION的,而是窗体FORM的了,看起来好像罗里罗唆的,但是WORK!,而且不这样做还真的不行,晕死。
评论