如何设计一个窗口显示在屏幕顶层,像realplayer等等一样始终在屏幕顶层,而且怎样屏蔽其他运行的程序,就是不能切换到其他程序,除非退出本程序 ( 积分: 1

  • 主题发起人 主题发起人 fflagred
  • 开始时间 开始时间
F

fflagred

Unregistered / Unconfirmed
GUEST, unregistred user!
如何设计一个窗口显示在屏幕顶层,像realplayer等等一样始终在屏幕顶层,而且怎样屏蔽其他运行的程序,就是不能切换到其他程序,除非退出本程序 ( 积分: 100 )<br />见题。重谢。
 
见题。重谢。
 
设置在顶很容易,不昂切换到其他程序的话,你可以考虑将鼠标锁定在你的界面内,并且屏蔽掉ATL,TABLE键
 
如何屏蔽那几个键?请指示。回答马上给分。
 

//下面的来限制鼠标位置
var
rtButton2: TRect;
begin
rtButton2 := Button2.BoundsRect;
MapWindowPoints(handle, 0, rtButton2, 2);
// 座标换算
ClipCursor(@rtButton2);
// 限制鼠标移动区域
end;

// 还原
var
rtScreen: TRect;
begin
rtScreen := Rect(0, 0, Screen.Width, Screen.Height);
ClipCursor(@rtScreen);
end;
 
var  
tmp : integer;
  begin
  tmp := 0;
  //屏蔽 Alt-Tab
  SystemParametersInfo( SPI_SETFASTTASKSWITCH 1 @tmp 0);
  //屏蔽 Ctrl-Alt-Del
  SystemParametersInfo( SPI_SCREENSAVERRUNNING 1 @tmp 0);
  end;

 end;
要恢复系统的热启动键(Ctrl+Alt+Del),使用以下语句
SystemParametersInfo(SPI_SCREENSAVERRUNNING 0 0 0);
 
怎么不好用?
 
//试试下面看
SetWindowPos(Application.MainForm.Handle, HWND_TOPMOST, Left, Top,
Width, Height, SWP_SHOWWINDOW or SWP_NOMOVE);
 
超简单!
frmMainWindow := TfrmMainWindow.CreateParented(GetDesktopWindow);
 
你是说什么不好用,鼠标控制的那个例子是将鼠标控制在按钮里,你可以换成你的窗体。
键盘得再98下面可以NT里的可能你要用HOOK
 
拦载鼠标移入移出消息:CM_MOUSEENTER,CM_MOUSELEAVE
 
我用的是全屏,所以不存在鼠标移入移出的问题,我现在是xp,上面屏蔽按键alt+tab和alt+ctrl+del的例子不好用。有高手给意见吗?
 
Formstyle设为fsStayOnTop,
windowstate设为wsmaximized,
就全都OK了
 
谢谢各位
 

Similar threads

后退
顶部