热情软件屋

 

如何激活其它程序的窗口


编号:QA001106
建立日期: 1999年6月3日 最后修改日期:1999年6月3日
所属类别:

邓建松:
    我正自学DELPHI4,现遇到一个问题请下列程序段:
    fwnd:=findwindow(nil,"pc-dos");
    setwindowpos(fwnd,HWND_TOPMOST,0,0,0,0,(SWP_SHOWWINDOW or SWP_HIDEWINDOW));
    setactivewindow(fwnd);
    setforegroundwindow(fwnd);
    意思是找到这个最小化的窗口句柄,然后利用这些函数切换到这个窗口(书上这样说),然而没有动静,请指点!不胜感谢!

回答:

    你这段程序存在一些问题。一个拼写错误是Delphi采用单引号括住字符串,而不是双引号。你的程序主要问题在SetWindowPos的参数,你使用的(SWP_SHOWWINDOW or SWP_HIDEWINDOW),而且将窗口高度和宽度都设置为零,这样该窗口就被隐藏了。正确的参数应该是这样的:
    SetWindowPos(fwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_SHOWWINDOW or SWP_NOSIZE or SWP_NOMOVE);
    如果你希望窗口恢复正常,也可以在SetWindowPos后加上
    ShowWindow(fwnd, SW_SHOW);
    这样有时更好些。
    

此问题由李海回答。

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio