找回密码
 加入
搜索
查看: 2139|回复: 5

[AU3基础] (已解决)请教关于Guitab UDF如何创建分属各个标签的控件?

[复制链接]
发表于 2013-2-23 18:54:16 | 显示全部楼层 |阅读模式
本帖最后由 ahphsautoit 于 2013-2-28 11:01 编辑

AU3中自带的标签控件会用,但创建UDF GuiTAB.au3中的标签,翻遍了每条示例和论坛资料,都只有标签页的控制方法,而没有涉及如何在选定的标签页创建其它控件的问题。有没有高手回答下?
发表于 2013-2-23 20:37:59 | 显示全部楼层
guitab几乎是模拟出来的,页操作和页效果可以认为是不同步的,不同的标签页可以认为是不同的窗口来操作
发表于 2013-2-23 20:56:39 | 显示全部楼层
回复 1# ahphsautoit


    没有特别的要求,还是用au3内建的创建tab吧,因为大量工作都是au3帮你做了。
若用udf,则很多事都需要你自己去做,远没有用默认的那么简单了。

#include <GuiConstantsEx.au3>
#include <GuiTab.au3>
#include <WindowsConstants.au3>

Global $hGui, $hTab, $aCtrl[4]
$hGui = GUICreate("Tab UDF", 400, 300)
$hTab = _GUICtrlTab_Create($hGui, 0, 0, 640, 120)

$aCtrl[0] = GUICtrlCreateLabel ("Label", 50, 50, 100, 20)
$aCtrl[1] = GUICtrlCreateButton("Button", 60, 60, 100, 20)
$aCtrl[2] = GUICtrlCreateCombo('Combo', 70, 70, 100, 20)
$aCtrl[3] = GUICtrlCreateRadio('Radio', 80, 80, 100, 20)

For $i = 0 To 3
        _GUICtrlTab_InsertItem($hTab, $i ,'Tab' & $i)
        GUICtrlSetState($aCtrl[$i], $GUI_HIDE)
Next
GUISetState(@SW_SHOW, $hGui)
GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")

Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
GUIDelete()


Func WM_NOTIFY($hWnd, $Msg, $wParam, $lParam)
        Local $hWndTab, $tNMHDR, $hWndGui, $iCode, $iIndex   
        $hWndTab = $hTab
        If Not IsHWnd($hWndTab) Then $hWndTab = GUICtrlGetHandle($hTab)   
        $tNMHDR = DllStructCreate($tagNMHDR, $lParam)
        $hWndGui = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
        $iCode = DllStructGetData($tNMHDR, "Code")  
        If $hWndGui == $hWndTab And $iCode == $TCN_SELCHANGE Then
                $iIndex = _GUICtrlTab_GetCurSel($hTab)
                For $i = 0 To UBound($aCtrl) - 1
                        If $iIndex == $i Then
                                GUICtrlSetState($aCtrl[$i], $GUI_SHOW)
                        Else
                                GUICtrlSetState($aCtrl[$i], $GUI_HIDE)
                        EndIf
                Next
        EndIf 
        Return $GUI_RUNDEFMSG
EndFunc
 楼主| 发表于 2013-2-24 09:20:16 | 显示全部楼层
感谢netegg、happytc两位朋友的帮助。我自己编写有一个用于管理程序、资料、账户的程序供自己使用,目前又推翻了以前的代码重新再写一个新的,涉及的UDF有菜单、状态栏、进度条、富文本EDIT、视图列表等,就是卡在Guitab上了,已经改用系统默认的TAB来创建了。再次感谢两位!
 楼主| 发表于 2013-2-24 09:22:22 | 显示全部楼层
回复 2# netegg
谢谢解惑!
 楼主| 发表于 2013-2-24 09:22:49 | 显示全部楼层
回复 3# happytc

感谢你的代码,多有启迪!
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-9-29 11:25 , Processed in 0.118132 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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