{
文章名 : 如何切换指定窗口到最前并获得焦点
说明 : SwitchToThisWindow在Win2000以上才有,在9x用不了别怪偶
作者 : JJony
QQ : 254706028
博客 : http://blog.csdn.net/jzj_jony
空间 : http://jonychen,ys168.com
测试环境 : WinXPSP2+Delphi7
声明 : 您可以任意转载,但请注明文章作者和出处
}
如何切换指定窗口到最前并获得焦点
今天在DFW看到有人问"一个相对较简单的问题(窗口激活) 真的很失望,200分,我感觉一个不是太复杂
的问题,论坛竟然没有人会?[?] ",呵呵,口气不小,而且说话还有点那个,本来这个问题我想回答的,不
过他既然说DFW没人,偶也不好驳人面子,就在我的Blog发了吧,看不看到是他的事,反正偶不爱和那人
说话。
好了不说废话了,说说具体的吧,要实现“切换指定窗口到最前并获得焦点”,很简单,我们只需一
个函数就OK了,那就是SwitchToThisWindow,这个函数估计知道的人不多,是从user32.dll导出的,其原
形为:
procedure SwitchToThisWindow(hWnd:Thandle; //窗体句柄
fAltTab:boolean //设为true相当于按ALT+TAB切换到指定窗口,至于
//为false是效果自己看吧,偶不会说了
);
具体实例:
//静态加载SwitchToThisWindow
procedure SwitchToThisWindow(hWnd:Thandle;fAltTab:boolean);stdcall;external 'User32.dll';
procedure TForm1.Button1Click(Sender: TObject);
var
h:thandle;
begin
h:=findwindow(nil,'test');
SwitchToThisWindow(h,true);
end;
是不是很简单,好了偶去睡午觉了。