离校未 发表于 2019-7-27 23:05

求易语言程序对话框弹出外部程序然后关闭继续执行!!

求易语言程序对话框弹出外部程序然后关闭继续执行!!不知道怎么原因,弹出来的另外第二个窗口找到程序后,关闭不了之前的第一个,点击任何地方都会弹出第二个窗户的,就是不能关闭,打算只想搞只限编辑框弹出第二个窗口的,然后关闭第一个窗口试试看

浪漫刺客 发表于 2019-7-28 05:33

不太懂你什么意思,发一下源码看看

梦汐 发表于 2019-7-28 07:22

用调用api来打开文件浏览框

梦汐 发表于 2019-7-28 07:24

梦汐 发表于 2019-7-28 07:26

如果要限制第二个窗口打开的话判断类名和标题来取句柄,想要减少误判的话还可以判断程序路径,以及其关联的窗口

梦汐 发表于 2019-7-28 07:27

另外的记得这个浏览框是对话框形式的,打开了子窗父窗会被禁止接收鼠标和键盘消息,不过我记得可以用api来解除,另外还可以接收投递的消息

离校未 发表于 2019-7-28 21:47

还是不会

离校未 发表于 2019-7-28 21:52

@梦汐 我发你原软件怎么运行方式的,附上易语言的问题文件:链接: https://pan.baidu.com/s/1UX06YH_60QTgAPKdk9nU6g 提取码: 2pm3

梦汐 发表于 2019-7-29 16:52

离校未 发表于 2019-7-28 21:52
@梦汐 我发你原软件怎么运行方式的,附上易语言的问题文件:链接: https://pan.baidu.com/s/1UX06YH_60QTgA ...

把 鼠标左键被按下 激活改成 鼠标左键被放开 或者 鼠标左键被双击 激活.版本 2
.支持库 shell

.子程序 _编辑框1_鼠标左键被放开, 逻辑型
.参数 横向位置, 整数型
.参数 纵向位置, 整数型
.参数 功能键状态, 整数型
.局部变量 Local_FileName, 文本型

Local_FileName = 对话框_打开文件 (取窗口句柄 (), 目录_取桌面目录 (), “打开程序”, “应用程序(*.exe)|*.exe”, )
.如果真 (Local_FileName ≠ “”)
    执行 (#打开文件, Local_FileName, , , #普通激活)

梦汐 发表于 2019-7-29 17:00

离校未 发表于 2019-7-28 21:52
@梦汐 我发你原软件怎么运行方式的,附上易语言的问题文件:链接: https://pan.baidu.com/s/1UX06YH_60QTgA ...

bug出现在了这一句,因为这个鼠标回调事件他是需要返回值的,因为你没返回任何值,所以他是默认判断为返回真,因此他会一直等待鼠标放开事件,但是因为那个文件浏览框采用对话框方式打开的,所以窗口接收不到鼠标放开事件,导致了bug的产生,解决方法可以用线程解决,或者改为鼠标放开事件,事实上大厂的软件都是放开事件激活的.版本 2

.如果真 (Local_FileName = “”)
    返回 (假)
页: [1] 2
查看完整版本: 求易语言程序对话框弹出外部程序然后关闭继续执行!!