我有一个popup的窗口,想让它像弹出式窗口一样(在这个窗口打开时不能点击其他窗口),但是又不能像弹出式窗口一样让程序停止在那里等待响应(其他窗口需要继续执行代码)。
换一种说话就是我的popup的窗口想要有像弹出式窗口一样不能失去焦点的功能。
------解决方案--------------------
response类型窗口是不是和楼主要求的功能类似?
------解决方案--------------------
这个有点难度哦。要用到钩子函数吧,要钩住并阻止让父窗口激活的所有消息,又要让你的后续代码的消息得到正常处理,有些难度。
------解决方案--------------------
我有一个转Excel的程序,就是用的popup,打开该窗口可以执行后续的代码也不失去焦点,如果不想做其它的操作试试:
setpointer(HourGlass!)
------解决方案--------------------
用response窗口是等待响应并且不能将焦点转移
但是并不影响原来已经打开窗口程序的正常运行
比如我在一个窗口的timer事件中
st_1.text=string(today(),'yyyy-mm-dd hh:mm:ss')
st_2.text=string(long(st_2.text) +1)
if mod(long(st_2.text),11)=0 then
dw_1.reset()
end if
if mod(long(st_2.text),16)=0 then
dw_1.retrieve()
end if
我打开此窗口后,又打开了一个其它的窗口,最后在其它窗口中打开respone窗口
在respone窗口打开后,我可以看到 时间不停在走,数字不停的累加,每到数据到11整数倍时,清除数据窗口内容,到16整数倍后数据窗口内容会重新retrieve()
------解决方案--------------------
试下用API接管鼠标消息
在CSDN中搜一下“鼠标的离开事件”应该可以搜到如何接管鼠标消息的贴子
------解决方案--------------------
------解决方案--------------------
在其它对象里检查 popup的窗口 是否打开,已打开的话不能就不能获得焦点,并使popup的窗口获得焦点.
比如在Window对象的Activate事件里:
IF IsValid(w_popup) THEN
w_popup.SetFocus()
END IF
未测试的,你试试看。
------解决方案--------------------
------解决方案--------------------
这样可以,已测试的.
在其它对象里检查 popup的窗口 是否打开,已打开的话不能就不能获得焦点,并使popup的窗口获得焦点.
比如在Window对象的Activate事件里:
IF IsValid(w_popup) THEN
w_popup.POST SetFocus()
END IF
------解决方案--------------------
把其它打开的窗口全部 enabled = false 就搞定了。
------解决方案--------------------
------解决方案--------------------
感觉有点像always on top的功能,lz这个叫always has focus
------解决方案--------------------
在窗口的deactivate()事件里写以下语句就可以了:
messagebox('','你想干嘛?不要乱点!')
this.setfocus()
------解决方案--------------------
在open前 设置 enabled= false
open(window)
当窗口关闭时 在设置 enabled= true
------解决方案--------------------