shqf 发表于 2014-5-14 16:07:56

(已解决)工具条不随窗口拉伸而拉伸,有谁知道如何解决这个问题?

本帖最后由 shqf 于 2014-5-17 22:14 编辑


图中可见工具条没有随窗口的拉伸而拉伸,有谁知道如何解决这个问题?
脚本如下,有关工具栏的代码从帮助例子中拷贝,当窗口可拉伸时会出现此问题。系统WinXPSP3,Autoit版本3.3.9.0,后下了3.3.11.3来试问题同样存在。#include <GUIConstantsEx.au3>
#include <GuiStatusBar.au3>
#include <GuiToolbar.au3>
#include <ListViewConstants.au3>
#include <ToolbarConstants.au3>
#include <WindowsConstants.au3>
#include <Constants.au3>

$Debug_TB = False

Global $hToolbar
Global $iItem
Global Enum $idNew = 1000, $idOpen, $idSave, $idHelp

#region ### START Koda GUI section ### Form=C:\Documents and Settings\Administrator\My Documents\一般窗口.kxf
$Form2 = GUICreate("窗体1", 414, 189, 295, 180,$WS_OVERLAPPEDWINDOW)
$MenuItem1 = GUICtrlCreateMenu("文件")
$MenuItem2 = GUICtrlCreateMenuItem("打开", $MenuItem1)
$MenuItem3 = GUICtrlCreateMenuItem("退出", $MenuItem1)
$MenuItem4 = GUICtrlCreateMenu("设置")
$MenuItem5 = GUICtrlCreateMenuItem("设置", $MenuItem4)
$MenuItem6 = GUICtrlCreateMenu("帮助")
$MenuItem7 = GUICtrlCreateMenuItem("帮助", $MenuItem6)
$MenuItem8 = GUICtrlCreateMenuItem("关于", $MenuItem6)

$hToolbar = _GUICtrlToolbar_Create($Form2, 0)
; 添加标准系统位图
_GUICtrlToolbar_AddBitmap($hToolbar, 1, -1, $IDB_STD_LARGE_COLOR)

; 添加按钮
_GUICtrlToolbar_AddButton($hToolbar, $idNew, $STD_FILENEW)
_GUICtrlToolbar_AddButton($hToolbar, $idOpen, $STD_FILEOPEN)
_GUICtrlToolbar_AddButton($hToolbar, $idSave, $STD_FILESAVE)
_GUICtrlToolbar_AddButtonSep($hToolbar)
_GUICtrlToolbar_AddButton($hToolbar, $idHelp, $STD_HELP)

$ListView1 = GUICtrlCreateListView("", 0, 36, 409, 103)

$StatusBar1 = _GUICtrlStatusBar_Create($Form2)
_GUICtrlStatusBar_SetMinHeight($StatusBar1, 25)
Local $aParts =
_GUICtrlStatusBar_SetParts($StatusBar1, $aParts)

GUISetState(@SW_SHOW)
#endregion ### END Koda GUI section ###

GUIRegisterMsg($WM_SIZE, "WM_SIZE")

While 1
      $nMsg = GUIGetMsg()
      Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit

      EndSwitch
WEnd

; 当 GUI 大小改变时重设状态栏大小
Func WM_SIZE($hWnd, $iMsg, $iwParam, $ilParam)
    #forceref $hWnd, $iMsg, $iwParam, $ilParam
    _GUICtrlStatusBar_Resize($StatusBar1)
    Return $GUI_RUNDEFMSG
EndFunc   ;==>WM_SIZE

vigiles 发表于 2014-5-14 21:05:52

试试在while中更新

lixiaolong 发表于 2014-5-15 21:23:36

本帖最后由 lixiaolong 于 2014-5-15 21:25 编辑

回复 1# shqf

$ListView1 = GUICtrlCreateListView("", 0, 36, 409, 103)
下面添加 GUICtrlSetResizing (-1, 102)

shqf 发表于 2014-5-16 13:29:50

GUICtrlSetResizing对工具栏好像不起作用的唉。工具栏与菜单栏、状态栏等一样,缺省是与窗口一样宽的,建立时不用设置宽度,也无法设置宽度。现在菜单栏能自动随窗口拉伸而拉伸,状态栏用_GUICtrlStatusBar_Resize来调整,对工具栏我没找到调整宽度的函数,也没有自动随窗口的拉伸而拉伸,是否属Bug啊。

lixiaolong 发表于 2014-5-17 08:35:31

回复 4# shqf

不好意思,我看错了。。。

Func WM_SIZE($hWnd, $iMsg, $iwParam, $ilParam)
里面添加 _GUICtrlToolbar_Create($Form2,0) 试试。

没有找到别的方法。。。

shqf 发表于 2014-5-17 22:13:46

谢谢楼上的朋友,照你的方法一试竟成功了。原以为会重复报错唉!多谢!

ak47gglllk 发表于 2014-5-19 22:33:05

这么神奇,感谢。学习了
页: [1]
查看完整版本: (已解决)工具条不随窗口拉伸而拉伸,有谁知道如何解决这个问题?