标签行数无限,而tab高度有限,如何添加垂直滚动条、或箭头之类的控件
对于GUICtrlCreateTab
默认的样式是单行显示,当各标签项宽度总和大于Tab控件宽度,则会自动在右侧生成左右的箭头,如下图所示:
但是我不要单行的模式,我要多行的模式,请教多行的情况下,
当多行tag高度大于TAB高度时,如何才能让所有的tag都能正常显示出来?
测试代码如下:
#include <GUIConstantsEx.au3>
#include <TabConstants.au3>
Global $tab_item
$GUI_main = GUICreate("测试",350,400)
GUISetState()
$TAB= GUICtrlCreateTab(0,0,350,75,$TCS_MULTILINE );TAB 指标签控件 $TCS_MULTILINE 多行显示
GUICtrlSetFont($TAB,14);设置标签字体
For $i = 1 To Random(1,100,1);创建随机个数的标签
$tab_item[$i] = GUICtrlCreateTabItem("tag"&$i)
Next
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
#include <GUIConstantsEx.au3>
#include <TabConstants.au3>
Global $tab_item, $iHeight1 = 100, $iHeight2
$GUI_main = GUICreate("测试",350,$iHeight1)
GUISetState()
$TAB= GUICtrlCreateTab(0,0,350,25,$TCS_MULTILINE );TAB 指标签控件 $TCS_MULTILINE 多行显示
GUICtrlSetFont($TAB,14);设置标签字体
For $i = 1 To Random(1,100,1);创建随机个数的标签
$tab_item[$i] = GUICtrlCreateTabItem("tag"&$i)
Next
ConsoleWrite($i&@CRLF)
Local $iCount = Int($i/5)
If Mod($i, 5) <> 0 Then $iCount += 1
$iHeight2 = $iCount*25
GUICtrlSetPos($TAB, 0, 0, 350, $iHeight2)
If $iHeight2 > $iHeight1 Then
Local $aPos = WinGetPos($GUI_main)
WinMove($GUI_main, '', $aPos, $aPos, 350, $iHeight2+50)
EndIf
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd 回复 2# Alam
这样不行,$TAB 我是要他必须固定高度,不允许他改变高度的,
因为在$TAB 控件下方,还会有其他的内容要添加 ........
可以适当的隐藏部分TAG,在右边增加两个按钮,点击则轮流改变它们的隐藏状态. 回复 4# Alam
恩,这倒是一个思路
页:
[1]