|
发表于 2023-10-24 08:57:41
|
显示全部楼层
|
本帖最后由 zdphj 于 2023-10-24 09:55 编辑
各位大佬,本人有个小程序,今日增加新功能,子程序func执行过程中,根据条件,符合就显示子窗口gui,一个下拉选择框,需要用户选择确认后,再继续执行后面的代码,现在问题就是,子窗口出来后,如何让代码暂停等待选择?
代码大致如下:
;主程序
......
;选择界面,可以这里,也可以在下面open()里,位置二选一
$gui = guicreate("用户选择",230,70,-1,-1,$ws_border,$ws_ex_topmost)
$user = guictrlcreatecombo("请选择登陆用户", 40, 10, 150, 20)
$ok = guictrlcreatebutton("确定", 190, 10, 40, 22)
.......
while 1
$msg = guigetmsg()
switch $msg
case ....
........
endswitch
wend
....
;这里是双击项目,相应事件
func wm_notify(....)
....
switch ...
case $nm_dblclk
open() ;双击项目,执行脚本
endswitch
endfunc
;这里是双击项目后执行的脚本
func open()
if 条件符合 then
.......
;选择界面,可以这里,也可以在上面主程序里,位置二选一
guictrlsetdata($user, $assh)
guisetstate(@sw_show, $gui)
;显示选择gui界面,等待选择后再继续向下执行
;问题是这里如何等待,如果不用while $msg=guigetmsg(),程序会不等待选择继续;如果用了,选择gui出来就会卡死,界面都显示不完整
;我目前的选择如下,很low
msgbox(4096, $pcmsg[1], "选择登陆用户并确认!")
$tmp_user = guictrlread($user)
guisetstate(@sw_hide, $gui)
guictrldelete($gui)
;用msgbox暂停,等选择完后确认,再继续,但是这样会出现gui选择框和msgbox框,很low很low
...........
endfunc
精简代码见附件
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?加入
×
|