找回密码
 加入
搜索
查看: 3301|回复: 6

[网络通信] 求助!关于GUICtrlCreateTabItem的问题,自己解决不掉了

  [复制链接]
发表于 2011-11-22 08:29:59 | 显示全部楼层 |阅读模式
本帖最后由 sunkiss 于 2011-11-22 19:50 编辑

下面的代码是示例中的代码,我想让GUICtrlCreateLabel("标记3", 20, 130, 50, 20)到GUICtrlCreateLabel("标记10", 20, 200, 50, 20)中的内容只在
GUICtrlCreateTabItem("tab0")和GUICtrlCreateTabItem("tab1")显示,而GUICtrlCreateLabel("标记11", 20, 210, 50, 20)只在
GUICtrlCreateTabItem("tab2")中显示,总是不太成功!来问一个高手!
可能是我没说明白,我是想让显示出的来东西在GUICtrlCreateTab(10, 10, 200, 100)创建的白框下面,同时标记3、标记4和标记5只在tab0和tab1中显示,就是说点tab0或tab1的时候才能看到标记3、标记4和标记5,而点tab2侧显示标记10和标记11,面不显示标记3-5。
#include <GUIConstantsEx.au3>

Example()

Func Example()
    Local $msg

    GUICreate("My GUI Tab") ; 创建居中显示的对话框窗口

    GUISetBkColor(0x00E0FFFF)
    GUISetFont(9, 300)

    GUICtrlCreateTab(10, 10, 200, 100)

    GUICtrlCreateTabItem("tab0")
        GUICtrlCreateLabel("标记1", 30, 80, 50, 20)

    GUICtrlCreateTabItem("tab1")
    GUICtrlCreateLabel("标记2", 30, 80, 50, 20)

    GUICtrlCreateTabItem("tab2")
    GUICtrlSetState(-1, $GUI_SHOW) ; will be display first
    GUICtrlCreateLabel("标记2", 30, 80, 50, 20)
    GUICtrlCreateButton("OK2", 140, 50, 50)

    GUICtrlCreateTabItem("") ; end tabitem definition

    GUICtrlCreateLabel("标记3", 20, 130, 50, 20)
GUICtrlCreateLabel("标记4", 20, 140, 50, 20)
GUICtrlCreateLabel("标记5", 20, 150, 50, 20)
GUICtrlCreateLabel("标记10", 20, 200, 50, 20)
GUICtrlCreateLabel("标记11", 20, 210, 50, 20)

    GUISetState()

    ; 运行 GUI, 直到窗口关闭
    While 1
        $msg = GUIGetMsg()

        If $msg = $GUI_EVENT_CLOSE Then ExitLoop
    WEnd
EndFunc   ;==>Example
发表于 2011-11-22 12:37:04 | 显示全部楼层
回复 1# sunkiss
是不是这样啊?
#include <GUIConstantsEx.au3>

Example()

Func Example()
    Local $msg

    GUICreate("My GUI Tab") ; 创建居中显示的对话框窗口

    GUISetBkColor(0x00E0FFFF)
    GUISetFont(9, 300)

    GUICtrlCreateTab(10, 10, 200, 100)

    GUICtrlCreateTabItem("tab0")
        GUICtrlCreateLabel("标记1", 30, 50, 50, 20)
                GUICtrlCreateLabel("标记2", 30, 80, 50, 20)
                
    GUICtrlCreateTabItem("tab1")
                GUICtrlCreateLabel("标记3", 30, 30, 50, 20)
                GUICtrlCreateLabel("标记4", 30, 50, 50, 20)
                GUICtrlCreateLabel("标记5", 30, 70, 50, 20)
                GUICtrlCreateLabel("标记10", 30, 90, 50, 20)

    GUICtrlCreateTabItem("tab2")
                GUICtrlCreateLabel("标记11", 30, 50, 50, 20)
    GUICtrlSetState(-1, $GUI_SHOW) ; will be display first
    
    GUICtrlCreateButton("OK2", 140, 50, 50)

    GUICtrlCreateTabItem("") ; end tabitem definition

    


    GUISetState()

    ; 运行 GUI, 直到窗口关闭
    While 1
        $msg = GUIGetMsg()

        If $msg = $GUI_EVENT_CLOSE Then ExitLoop
    WEnd
EndFunc   ;==>Example
发表于 2011-11-22 13:25:17 | 显示全部楼层
子标签这么建不行
 楼主| 发表于 2011-11-22 19:51:43 | 显示全部楼层
回复 2# xms77


    谢谢你的回复,呵呵,可是和我想的不一样。
发表于 2011-11-22 19:58:42 | 显示全部楼层
回复 4# sunkiss
给你借鉴,希望对你有帮助
发表于 2011-12-22 12:02:48 | 显示全部楼层
简单修正了一下

本帖子中包含更多资源

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

×
发表于 2011-12-22 12:06:01 | 显示全部楼层
;给你一个参考,最笨的方法,可以优化
#include <GUIConstantsEx.au3>
Opt("GUIOnEventMode", 1)
Local $L1,$L2,$L3,$L4,$L5,$L10,$L11,$Tab
Example()

Func Example()
    Local $msg
    GUICreate("My GUI Tab") ; 创建居中显示的对话框窗口
    GUISetBkColor(0x00E0FFFF)
    GUISetFont(9, 300)

$Tab =GUICtrlCreateTab(10, 10, 200, 100)
GUICtrlSetOnEvent($Tab,"MYTab")
     $L1=GUICtrlCreateLabel("标记1", 30, 80, 50, 20)
            GUICtrlSetState(-1, $GUI_hide)          
     $L2= GUICtrlCreateLabel("标记2", 30, 80, 50, 20)       
            GUICtrlSetState(-1, $GUI_hide)                  
     $L3=GUICtrlCreateLabel("标记3", 20, 130, 50, 20)
            GUICtrlSetState(-1, $GUI_hide)                  
     $L4=GUICtrlCreateLabel("标记4", 20, 140, 50, 20)
            GUICtrlSetState(-1, $GUI_hide)                  
     $L5=GUICtrlCreateLabel("标记5", 20, 150, 50, 20)
            GUICtrlSetState(-1, $GUI_hide)                  
     $L10=GUICtrlCreateLabel("标记10", 20, 200, 50, 20)  
            GUICtrlSetState(-1, $GUI_hide)                  
     $L11=GUICtrlCreateLabel("标记11", 20, 210, 50, 20)
            GUICtrlSetState(-1, $GUI_hide)                  
     $OK2=GUICtrlCreateButton("OK2", 140, 50, 50)         
            GUICtrlSetState(-1, $GUI_hide)                  
$Tab0 =      GUICtrlCreateTabItem("tab0")
$Tab1 =      GUICtrlCreateTabItem("tab1")
$Tab2 =      GUICtrlCreateTabItem("tab2")
GUICtrlSetState(-1, $GUI_SHOW) ; will be display first
GUICtrlCreateTabItem("") ; end tabitem definition
GUISetOnEvent($GUI_EVENT_CLOSE, "Close")
GUISetState(@SW_SHOW)
While 1; 运行 GUI, 直到窗口关闭
        Sleep(100)
WEnd
EndFunc   ;==>Example


Func MYTab()
        Select
                CASE GUICtrlRead($Tab)=2   ;切换到 tab2
          GUICtrlSetState($L3, $GUI_HIDE)                        
          GUICtrlSetState($L4, $GUI_HIDE)
          GUICtrlSetState($L5, $GUI_HIDE)                   
          GUICtrlSetState($L10, $GUI_SHOW)        
          GUICtrlSetState($L11, $GUI_SHOW)                   
                CASE GUICtrlRead($Tab)=1   ;切换到 tab1
          GUICtrlSetState($L3, $GUI_SHOW)                        
          GUICtrlSetState($L4, $GUI_SHOW)
          GUICtrlSetState($L5, $GUI_SHOW)                   
          GUICtrlSetState($L10, $GUI_HIDE)        
          GUICtrlSetState($L11, $GUI_HIDE)                   
          CASE  GUICtrlRead($Tab)=0   ;切换到 tab0
          GUICtrlSetState($L3, $GUI_SHOW)                        
          GUICtrlSetState($L4, $GUI_SHOW)
          GUICtrlSetState($L5, $GUI_SHOW)                   
          GUICtrlSetState($L10, $GUI_HIDE)        
          GUICtrlSetState($L11, $GUI_HIDE)        
    EndSelect                  
EndFunc

Func Close()
        Exit
EndFunc
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-6-11 02:00 , Processed in 0.089683 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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