易语言鼠标点击窗口以外的就销毁这窗口

已举报 回答 关注
易语言鼠标点击窗口以外的就销毁这窗口
问在线客服
扫码问在线客服
  • 回答数

    7

  • 浏览数

    6,711

7个回答 默认排序
  • 默认排序
  • 按时间排序

已采纳
监控鼠标按键 比如鼠标单击了左键 但是这个时候取当前鼠标句柄不等于你的窗口或者不在窗口的番外内就销毁
2.代码
附:使用易语言扩展组件的最后一个 输入设备
.版本 2.支持库 EdirectX.支持库 eAPI.子程序 __启动窗口_创建完毕输入设备1.激活 ()输入设备1.置刷新时间 (10)输入设备1.初始化 (0) ' 设置0就是全局当前桌面差不多的意思.子程序 _输入设备1_鼠标按键被改变.参数 键值, 整数型.参数 键状态, 整数型.如果真 (键值 = 256) 输出调试文本 (“按下了左键”) .如果 (取鼠标所在窗口句柄 () = _启动窗口.取窗口句柄 ()) 输出调试文本 (“在窗口上”) .否则 输出调试文本 (“不在窗口上”) .如果结束.如果真结束

但是这个有一个BUG,可能如果你的窗口上有其他组件,他则会去到组件的句柄从而说不在窗口上,这个时候你可以把 取鼠标所在窗口句柄 () = _启动窗口.取窗口句柄 () 加上

取鼠标所在窗口句柄 () = _启动窗口.取窗口句柄 () 或 取鼠标所在窗口句柄 () = 按钮1.取窗口句柄

这样把所有的组件句柄叠加一下

第二种方法你可以用鼠标控制器判断鼠标位置,设置边界即可
取消 评论
大漠插件你值得拥有
取消 评论
第八行scanf("%f,%f,%f“,&a,&b,&c);错打了一个全角的“,应该改为半角的"第十一行和十四行2a两个字符应该改为(2*a)中间加乘号,两边加括号第九行的报错可能是受第八行的错误影响的if(m=0)行浮点数无法这么精确判断是否等于0,可改为if(fabs(m)#includeintdt(float);voidmain(){floata,b,c,d;printf("输入a,b,c的值:\n");scanf("%f,%f,%f",&a,&b,&c);d=b*b-4*a*c;if(dt(d)==0)printf("x1=%f,x2=%f\n",(b+sqrt(d))/(2*a),(-b-sqrt(d))/(2*a));elseif(dt(d)==1)printf("x=%f\n",-b/(2*a));elseif(dt(d)==2)printf("此方程无解!\n");}intdt(floatm){if(m>0)return0;elseif(fabs(m)<0.0001)return1;elseif(m<0)return2;}
取消 评论
取句柄,我也不是很懂,我知道可以通过句柄来控制
取消 评论
CreateWindowEx 自己 百度这个API
取消 评论
你所操作的窗体都有个总在最前的设置属性,你在鼠标点击的事件中添加该属性设置即可
取消 评论
不用时钟没法判断当前鼠标位置,你可以在启动你那个窗口时置一个时钟周期,销毁那个窗口之前再将时钟周期置为0
取消 评论
ZOL问答 > 鼠标 > 其他分类 > 易语言鼠标点击窗口以外的就销毁这窗口

举报

感谢您为社区的和谐贡献力量请选择举报类型

举报成功

经过核实后将会做出处理
感谢您为社区和谐做出贡献

扫码参与新品0元试用
晒单、顶楼豪礼等你拿

扫一扫,关注我们
提示

确定要取消此次报名,退出该活动?