弹出总在最前的系统窗口 找速达进销存
库存管理软件版1楼: 窗体总在最前,窗体上有一个listview,显示某路径下所有文件,在文件上点右键可以调出系统菜单,选择"属性"或者"删除"等会弹出系统窗口,但是主程序窗体是在最前的,所以弹出的系统窗口就位于主程序窗口的后方了,有没有办法使弹出的系统窗口在主程序的前方?
小弟第一次提问,有何不周望多包含.
if findwindow(nil,pchar(窗口标题))<>null then
begin
subdlg:=findwindow(nil,pchar(窗口标题));
SetWindowPos(subdlg,HWND_TOPMOST,0,0,0,0,SWP_NOSIZE OR SWP_NOMOVE);
finddlg.Enabled:=false;
end;
我试过是可以的.
小弟第一次提问,有何不周望多包含.
2楼: 你让弹出的总在最上方就可以了啊
窗体有一个属性是修改弹出时是否在最上方的 如速达进销存
3楼: form1.formstyle:=fsStayOnTop
4楼: form1.formstyle:=fsStayOnTop 只是让主程序的窗口最前了,现在这个属性就是fsStayOnTop,但是listview上弹出的窗口是调用系统的,比如"删除"和"属性",他们仍然在主程序窗口的后方.
5楼: 以前碰过这个问题,现在又忘记怎么解决了!(真丢人!)
去查查看.
6楼: 帮顶!
╭=========================================╮
80G海量源代码,控件,书籍全免费狂下不停!
http://www.source520.com
╰=========================================╯
库存管理软件版7楼: 没有解决的方法么?没办法结帖啊.
8楼: 有个笨办法,如果要弹出系统窗口,那么应该知道该窗口的title才对,那么在窗口里添加一个timer,并使其disable,在弹出系统窗口后再使其enable,然后在timer的事件里写:
if findwindow(nil,pchar(窗口标题))<>null then
begin
subdlg:=findwindow(nil,pchar(窗口标题));
SetWindowPos(subdlg,HWND_TOPMOST,0,0,0,0,SWP_NOSIZE OR SWP_NOMOVE);
finddlg.Enabled:=false;
end;
我试过是可以的.
9楼: 接受了,虽然有点....呵呵
10楼: 自己写代码进行删除或重命名就可以啦(我今天就为了这个问题写了一早上的代码)。
如果要屏蔽系统的热键,在哪些都可以啦。