找回密码  加入

AUTOIT CN

搜索
查看: 455|回复: 40

[GUI管理] 想模仿JS的一个联动菜单,请指点一下[已解决]

[复制链接]
发表于 2018-9-27 14:48:18 | 显示全部楼层 |阅读模式
本帖最后由 heroxianf 于 2018-10-9 17:32 编辑



这个是JS完成,我想在AU3的input控件上完成这个操作,请问有实现的途径吗?
自己的想法1:另外做一个界面,点击input控件跳出来选择。
2:类似于下拉菜单,然后鼠标悬停就弹出来。(这种建立菜单过于长,因为分类实在太多了。)

PS:感谢A大和顽固的指点,除了程序的设计,数据库存储格式也很重要,解决代码就在下方讨论区里。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?加入

x
发表于 2018-9-27 16:51:19 | 显示全部楼层
本帖最后由 绿色风 于 2018-9-27 16:53 编辑

http://www.autoitx.com/thread-59291-1-1.html

看下,嫩用到1/3,给你



无限循环好高的,做好数据结构就行

 楼主| 发表于 2018-9-27 17:10:42 | 显示全部楼层
绿色风 发表于 2018-9-27 16:51
http://www.autoitx.com/thread-59291-1-1.html

看下,嫩用到1/3,给你

我看了一下,是控件分开关联的,我需要在一个控件下弹出菜单选择,和截图一模一样。

http://www.17sucai.com/pins/demo-show?id=20634   这个效果
发表于 2018-9-27 18:52:28 | 显示全部楼层
原理是一样的啊,下拉框换成列表框,点击输入框显示这个窗口。
 楼主| 发表于 2018-9-28 10:17:27 | 显示全部楼层
志艺风云 发表于 2018-9-27 18:52
原理是一样的啊,下拉框换成列表框,点击输入框显示这个窗口。

能否给一个简单的示例呢
发表于 2018-9-28 10:35:52 | 显示全部楼层
本帖最后由 afan 于 2018-9-28 10:39 编辑

如果是au3做成类似的功能,应该不是这样想的吧,被先入为主了……
直接用弹出菜单的形式(不是ComboBox弹出菜单)不知道要方便多少倍,只要点击一下,各级菜单均可直接划开显示/选择。
弹出菜单网页可能不好弄(或者出于美观协调性),而Au3再方便不过了。
 楼主| 发表于 2018-9-28 10:38:24 | 显示全部楼层
afan 发表于 2018-9-28 10:35
如果是au3做成类似的功能,应该不是这样想的吧,被先入为主了……
直接用弹出菜单的形式(不是ComboBox弹出 ...

A大 用什么函数去实现呢?你描述的大体是什么样子的? 主要是分类很多  一级30个、一直到5级,总行数有2400多行。
发表于 2018-9-28 10:43:15 | 显示全部楼层
heroxianf 发表于 2018-9-28 10:38
A大 用什么函数去实现呢?你描述的大体是什么样子的? 主要是分类很多  一级30个、一直到5级,总行数有24 ...

这个数量肯定没问题。随便就用 _GUICtrlMenu_CreatePopup 好了。
这个js能显示的,弹出菜单只会比它更能显示更多菜单项
发表于 2018-9-28 10:49:26 | 显示全部楼层
顺便提醒一下细节部分, Input 控件最好加上只读样式,或者直接使用 Label 控件,以防用户直接误修改造成与最终读取不符
 楼主| 发表于 2018-9-28 10:51:31 | 显示全部楼层
afan 发表于 2018-9-28 10:49
顺便提醒一下细节部分, Input 控件最好加上只读样式,或者直接使用 Label 控件,以防用户直接误修改造成与 ...

嗯,我打算建立一个按钮控件来显示,好歹有一个样式在。
发表于 2018-9-28 13:23:50 | 显示全部楼层
heroxianf 发表于 2018-9-28 10:17
能否给一个简单的示例呢

你把 绿色风 的那个 GUICtrlCreateCombo 改成 GUICtrlCreateList控件看看,不就是差不多了吗。
你在窗口点击一个按钮,显示那个窗口不就行了吗,样式你再改改,当然想改成那个网页一样基本没可能。
 楼主| 发表于 2018-9-28 15:34:20 | 显示全部楼层
afan 发表于 2018-9-28 10:49
顺便提醒一下细节部分, Input 控件最好加上只读样式,或者直接使用 Label 控件,以防用户直接误修改造成与 ...



A大 不太会使用这个函数,示例里 WM_CONTEXTMENU($hWnd, $iMsg, $wParam, $lParam)  这些参数也没看明白,不声明也可以使用。还希望A大给一个列子,附件是我设计的INI存储格式。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?加入

x
 楼主| 发表于 2018-9-28 15:35:09 | 显示全部楼层
志艺风云 发表于 2018-9-28 13:23
你把 绿色风 的那个 GUICtrlCreateCombo 改成 GUICtrlCreateList控件看看,不就是差不多了吗。
你在窗口 ...

感谢,我一开始也是想的A大的方法,  不过对消息注册事件不懂,也就卡壳了。
 楼主| 发表于 2018-9-28 15:44:44 | 显示全部楼层
afan 发表于 2018-9-28 10:49
顺便提醒一下细节部分, Input 控件最好加上只读样式,或者直接使用 Label 控件,以防用户直接误修改造成与 ...

我对那个动态创建子菜单有点想不到方法。
发表于 2018-9-28 16:33:24 | 显示全部楼层
本帖最后由 afan 于 2018-9-28 16:37 编辑
heroxianf 发表于 2018-9-28 15:44
我对那个动态创建子菜单有点想不到方法。

注意: 示例 ini 文件如果用ini内置函数操作,不要用 UTF-8 格式保存,那样会乱码。本例已存为 ANSI

#include <GuiMenu.au3>

Global $hGUI

Example()

Func Example()
        ; 创建 GUI
        $hGUI = GUICreate('test')
        GUISetState(@SW_SHOW)
        GUICtrlCreateLabel('点击选择        >', 10, 10, 300, 20)
        While 1
                Switch GUIGetMsg()
                        Case -3
                                Exit
                        Case 3
                                _CreateMenu()
                EndSwitch
        WEnd
EndFunc   ;==>Example

Func _CreateMenu()
        Local $fIni = 'set.ini'
        Local $aIni = IniReadSection($fIni, 'one')
        If @error Then Return SetError(1, 0, 0)
        Local $hMenu = _GUICtrlMenu_CreatePopup()
        Local Enum $itemC0 = 1500
        Local $aIni1, $hMenuC
        For $ii = 1 To $aIni[0][0]
                $aIni1 = IniReadSection($fIni, $aIni[$ii][1])
                If @error Then ContinueLoop
                $hMenuC = _GUICtrlMenu_CreateMenu()
                For $jj = 1 To $aIni1[0][0]
                        _GUICtrlMenu_AddMenuItem($hMenuC, $aIni1[$jj][1], $itemC0)
                Next
                _GUICtrlMenu_AddMenuItem($hMenu, $aIni[$ii][1], 0, $hMenuC)
        Next
        _GUICtrlMenu_TrackPopupMenu($hMenu, $hGUI)
        _GUICtrlMenu_DestroyMenu($hMenu)
EndFunc   ;==>_CreateMenu
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|小黑屋|手机版|AUTOIT CN ( 鲁ICP备15028933号-3 )谷歌 百度

GMT+8, 2018-10-20 07:01 , Processed in 0.158030 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表