微信小程序按钮禁止设置方法
编辑:小飞燕 发布时间:2021-04-12 09:50:19
小程序按钮的操作中有很多隐藏的小程序功能。我们来介绍一下微信小程序按钮的禁止设置。希望大家看完下面的流程后能操作成功。
一般窗体右上角有比较大化、比较小化、关闭按钮。dan需要禁用窗口上的关闭按钮,以避免在mdi表单中重复打开同一个窗口。这个例子实现了这个功能。
说到禁用,有人会说:直接用formclosing处理就行了:
1 ///
2 ///窗体关闭时的事件
3 ///
4 private void frmmain _ formclosing(对象发送者,formclosingeventargse)
5 {
6 e.cancel=true//取消关闭操作
7 }
当然,这是可以做到的,但是我们的目标是禁用灰色化,如下图所示:
运行效果如图:
是不是很神奇?我们知道比较小化按钮在比较大化时可以被禁用,但是关闭按钮怎么能被禁用呢?请参见以下生产流程:
[关键技术]
本例主要使用窗口处理方法wndproc的重写方法,在该方法内部截取关闭窗口的消息,从而实现禁用“关闭”按钮的功能。
使用getsystemmenu和enablemenuitem使“关闭”按钮变灰。
其他事件的使用等。
wndproc方法主要用于处理windows消息,语法格式如下:
1[security permissionattribute(security action . link demand,flags=security permissionflag . unmanaged code)]
2[security permissionattribute(security action . inheritance demand,flags=security permissionflag . unmanaged code)]
3受保护的虚拟void wndproc(ref消息m);
【注意:详细的功能描述请参考源代码中的备注。]
[设计流程]
(1)打开visual studio,创建一个新的winform应用程序,并将其命名为stopclosebutton。
(2)定义以下成员变量和api声明:
1 private const int sc _ close=0xf 060;//定义关闭按钮对应的消息值
2 private const int mf _ enabled=0x 00000000;//禁用
3 private const int mf _ gray=0x 00000001;//灰色
4 private const int mf _ disabled=0x 00000002;//禁用
5 private const int wm _ sys command=0x 0112;//定义要拦截的消息类型
六
7 [dllimport('user32.dll ',entrypoint='getsystemmenu')]
8 private static extern int ptr getsystemmenu(int ptr hwnd,int bre vert);
九
10 [dllimport('user32.dll')]
11 public static extern bool enablemenuitem(int ptr hme nu,intuidenableitem,int uenable);
(2)重写wndproc方法,以达到用户“关闭”按钮时无响应的效果:
1 ///
2 ///重写wndproc方法,达到用户“关闭”按钮时无响应的效果
3 ///
4////要处理的windows消息
5受保护覆盖无效wndproc(参考消息m)
6 {
7 if((m . msg==wm _ syscommand)(int)m . wparam==sc _ close)//当鼠标“close”按钮时,8 {
9返回;//不做处理直接返回
10 }
11 base . wnd proc(ref m);//传递下一条消息
12 }
(3)不要急着跑,因为除了结束流程之外是关不上的。
所以,给自己留一条出路:放一个按钮,用它退出,在按钮的click事件中写出退出程序的方法:
1私人void button1_click(对象发送者,事件参数e)
2 {
3 application.exit
4 }
(4)运行后发现“关闭”按钮无法,但也没有变灰。
那是因为我们还没有调用enablemenuitem:
在窗体构造或加载事件中调用getsystemmenu和enablemenuitem函数,以实现“关闭”按钮变灰的效果:
1 private void frmmain_load(对象发送方,eventargs e)
2 {
3 int ptr hme nu=getsystemmenu(this . handle,0);//获取关闭按钮
4 enablemenuitem(hmenu,sc_close,(mf _ disabled mf _灰显)| mf _ enabled);//设置样式(参数可自定义)
5 }
(5)至此,这个小程序已经实现,细心的人会发现以下小bug:
虽然“关闭”按钮已被禁用,但当您点按下面的放大按钮时,虽然关闭按钮仍然无法使用,但灰色效果会消失。
那么解决办法就是禁用比较大化比较小化按钮(* _ *),或者在表单状态改变的情况下,再次调用下面的灰显函数。
微信小程序按钮禁止的开发设置还是比较实用的。根据以上信息,如果有什么不明白的地方,欢迎大家留言,小串联讨论。更多相关信息,请关注源代理网的小程序渠道。
下面是题目的开头。api手册对小程序的目的是什么?标题到此结束
微信小程序框架为开发者提供了一系列组件和api接口。,小编将介绍api手册在小程序中的使用,并在本文中解释api手册的使用。
组件主要完成小程序的视图部分,如文本和图片显示。api主要完成网络请求、数据存储、音视频播放控制、微信登录、微信小程序支付等逻辑功能。
至于微信小程序商店提供的开发文档,个人建议先了解一下整体框架,它提供了哪些组件,然后再考虑这些组件会用在哪些产品和功能上。接口也是如此,不细看就整体理解。
如果熟悉文档的结构,在开发过程中开发相应的功能时可以直接找到自己需要的地方,在使用过程中理解掌握。这是一种更高效的学习方法。
该小程序提供以下组件:
同样,我们首先了解微信api的结构:
一旦了解了文档结构,就可以开始实战了。从一个简单的开始,当你需要实现某个界面或者小程序功能的时候,你可以快速定位你应该阅读文档的哪个部分。
实例分析
以豆瓣电影app为例,分析如何快速查找文档并进行开发。
通过之前对小程序框架的理解,可以很容易的分析出如何实现豆瓣电影app这样的小程序。
底部导航
底层导航的实现在前面框架的小程序配置文件中实现,并设置了tabbar属性。其特定属性的设置可以快速定位文档
实现代码如下:
tabbar': {
backgroundcolor': '#363636 ',颜色' :'#666 ',选择颜色' :'#fff ',list': [{
页面路径' : '页面/索引/索引',文本' : '热映射',icon path ' : ' res/images/film . png ',select edicinpath ' : ' res/images/film . png '
},
{
页面路径' : '页面/推荐/推荐',正文' : '热门推荐',icon path ' : ' res/images/hot . png ',selectedicon path ' : ' res/images/hot . png '
},
{
页面路径' : '页面/搜索/搜索',文字' : '电影搜索',icon path ' : ' res/images/search . png ',selectedicon path ' : ' res/images/search . png '
}
]
}
横幅实施
横幅可以自动左右滑动。通过前面的理解,我们可以很快学会使用swiper组件。搜索方法:组件-视图容器-游标找到文档,然后复制正式实例:
autoplay=' { { autoplay } } ' interval=' { { interval } } ' duration=' { { duration } } ';
页面({
数据: {
imgurls :[' http://img 02 . tooopen.com/images/20210928/tooopen _ sy _ 143912755726 . jpg ',' http://img 06 . tooopen.com/images/20210818/tooopen _ sy _ 175866434296 . jpg ',' 3358 img 06 . tooopen.com/images/20210818
],
指示:为假,autoplay: false,interval: 5000,工期: 1000
}
})
查看效果出现后,根据自己的需要修改属性,实现自己想要的功能。
电影放映部分
影片展示部分包含图片、文字等。而每部电影的介绍都是一组,不断重复。
因此,我们将使用视图容器视图、媒体组件图像、基本内容组件文本等。这些是基本组件。熟悉文档结构后,可以在组件目录下找到对应组件的用法。
网络请求
小程序界面显示的电影信息来自网络。豆瓣电影打开api接口
需要使用网络请求通过网络接口获取数据,当然可以用js来实现,但是我们知道微信提供了网络接口,api――网络-网络请求,通过它可以请求网络数据。
示例代码:
var url=' https://api . douban.com/v2/movie/in _ theaters ';
wx.request({
url: url,method: 'get ',//options,get,head,post,put,delete,trace,connect
header: {
内容类型' : '应用程序/json '//返回json格式。
必须添加
},//设置请求的头
成功:功能(res){
console . log(res . data . subjects);
that.setdata({
电影:分辨率.数据.主题
});
}
})
以上界面可以得到豆瓣电影的电影信息。使用起来也很方便,支持http和https(调试模式)。
数据交互
用界面,用数据。然后如何向接口显示数据,如何向逻辑层提供接口数据,那么就可以找到数据绑定部分的文档了。
示例代码:
{{ message }}
页面({
数据: {
信息:‘你好,米娜!’
}
})
这样就很容易知道如何将数据从逻辑层传输到视图层。
那么如何将视图层的操作转移到逻辑层呢?小程序的组件提供事件,框架视图层--wxml--事件
下面是一个简单事件用法的示例:
我!
页面({
tapname:函数(事件){
console.log(事件)
}
})
视图层通过事件将相关数据传输到逻辑层进行处理。
上一篇:微信小程序顶部导航栏开发代码
下一篇:微信小程序tab导航怎么开发