sunkiss 发表于 2011-11-22 08:29:59

求助!关于GUICtrlCreateTabItem的问题,自己解决不掉了

本帖最后由 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

xms77 发表于 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

netegg 发表于 2011-11-22 13:25:17

子标签这么建不行

sunkiss 发表于 2011-11-22 19:51:43

回复 2# xms77


    谢谢你的回复,呵呵,可是和我想的不一样。

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)                   
          CASEGUICtrlRead($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
页: [1]
查看完整版本: 求助!关于GUICtrlCreateTabItem的问题,自己解决不掉了