一种简单方便的用户权限管理方法--使用菜单来管理用户
2008-05-01 03:04
881 查看
问题有点棘手,于是想到去MSDN上查看有哪些可以用的关于的菜单消息,我找到了两
WM_MENUCHAR,WM_MENUSELECT,WM_MENUCHAR是用来判断当有菜单项被选中时,接收到了来自键盘的按键的时候触发,WM_MENUSELECT是在菜单项选中时触发,于是我试了两个消息。发现在映射到WM_MENUSELECT的用户自定义事件中用KEYDOWN判断用户是否按下键根本没用,现在大家明白了,WM_MENUCHAR就是解决问题的关键所在。
WM_MENUCHAR消息是在当用户选中了某个菜单项时(任一个),只是只要按下键盘上的任一个有效键,通过消息上的CHAR可以看出来,就可以触发该事件了,这样。我可以在选中某个菜单项的时候,在出来这个消息的事件里让这个菜单项的CHECKED属性变化,这样就可以让菜单保持展开状态,实现复选了。
在菜单所在窗口中定义一个用户事件,映射到系统消息PBM_MENUCHAR 叫US_MENUCHAR
在这个事件里写
int li_upper
li_upper=upperbound(myCurMenu.item)
if keydown(keyD!) and li_upper= 0 then //判断D键是否按下和是否还有下一级菜单,但是在这里keydown判断不了是否鼠标右键被按下,是因为这个消息只取键盘按键按下与否的信息。
myCurMenu.checked=not myCurMenu.checked
myCurMenu.enabled=not myCurMenu.enabled
myCurMenu.enabled=not myCurMenu.enabled
end if
myCurMenu是个全局变量,用来存放当前用户选中的菜单项,当然这需要在每个菜单项的SELECTED事件里加上一句
MyCurMenu =this
来获得当前高亮显示的菜单。
当然你也可以用API从WM_MENUCHAR消息带来的菜单句炳等去判断是哪个菜单项按下,我试了,没成功。大家可以自己试!
大致的编码就这么多,比较简单,但是没能实现用鼠标右键点选权限,只能用键盘来控制,还是有那么一点不方便。但是感觉还是比较方便实用的,欢迎大家斧正!谢谢!
(完)
WM_MENUCHAR,WM_MENUSELECT,WM_MENUCHAR是用来判断当有菜单项被选中时,接收到了来自键盘的按键的时候触发,WM_MENUSELECT是在菜单项选中时触发,于是我试了两个消息。发现在映射到WM_MENUSELECT的用户自定义事件中用KEYDOWN判断用户是否按下键根本没用,现在大家明白了,WM_MENUCHAR就是解决问题的关键所在。
WM_MENUCHAR消息是在当用户选中了某个菜单项时(任一个),只是只要按下键盘上的任一个有效键,通过消息上的CHAR可以看出来,就可以触发该事件了,这样。我可以在选中某个菜单项的时候,在出来这个消息的事件里让这个菜单项的CHECKED属性变化,这样就可以让菜单保持展开状态,实现复选了。
在菜单所在窗口中定义一个用户事件,映射到系统消息PBM_MENUCHAR 叫US_MENUCHAR
在这个事件里写
int li_upper
li_upper=upperbound(myCurMenu.item)
if keydown(keyD!) and li_upper= 0 then //判断D键是否按下和是否还有下一级菜单,但是在这里keydown判断不了是否鼠标右键被按下,是因为这个消息只取键盘按键按下与否的信息。
myCurMenu.checked=not myCurMenu.checked
myCurMenu.enabled=not myCurMenu.enabled
myCurMenu.enabled=not myCurMenu.enabled
end if
myCurMenu是个全局变量,用来存放当前用户选中的菜单项,当然这需要在每个菜单项的SELECTED事件里加上一句
MyCurMenu =this
来获得当前高亮显示的菜单。
当然你也可以用API从WM_MENUCHAR消息带来的菜单句炳等去判断是哪个菜单项按下,我试了,没成功。大家可以自己试!
大致的编码就这么多,比较简单,但是没能实现用鼠标右键点选权限,只能用键盘来控制,还是有那么一点不方便。但是感觉还是比较方便实用的,欢迎大家斧正!谢谢!
(完)
相关文章推荐
- 一种简单方便的用户权限管理方法--使用菜单来管理用户权限
- 一种简单方便的用户权限管理方法--使用菜单来管理用户权限(下)
- 一种简单方便的权限管理方法--使用菜单
- 【AD】AD域环境下利用Supercrypt实现普通用户安装/运行/更新使用管理权限的方法
- AD域环境下利用Supercrypt实现普通用户安装/运行/更新使用管理权限的方法
- 使用navicat 8实现创建数据库和导入数据 管理用户与权限[图文方法]
- 使用angular 实现简单 用户-角色-菜单-按钮权限控制
- Delphi 一种简单的二进制校验方法,适用于简单的权限管理或开关控制
- 使用navicat 8实现创建数据库和导入数据 管理用户与权限[图文方法]
- 使用layui+ajax实现简单的菜单权限管理及排序
- AD域环境下利用Supercrypt实现普通用户安装/运行/更新使用管理权限的方法
- Java技术_每天掌握一种设计模式(003)_使用场景及简单实例(创建型:工厂方法)
- Android studio 简单方便的使用JNI调用c语言中的方法
- 一步一步使用Ext JS MVC与Asp.Net MVC 3开发简单的CMS后台管理系统之用户管理(3)
- linux命令详解之useradd命令使用方法[linux下 添加用户、删除用户、修改用户密码、用户组管理]
- Perl 语言中使用 DB_File 类操作Berkeley Database的一种简单方法
- AngularJS内置服务$http的使用——用户权限管理实例
- c#实现按用户角色分配菜单的使用权限(WinForm)
- linux用户权限管理—id、usermod命令使用
- 用户权限管理及动态菜单的实现