Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для proxy

Старожил


Сообщения: 460
Благодарности: 152

Профиль | Отправить PM | Цитировать


и такой пример:
читать дальше »


Код: Выделить весь код
Opt('GUIOnEventMode',       1)
Opt('MustDeclareVars',      1)
Opt('TrayIconDebug',        1)
Opt('TrayIconHide',         0)

#include <GUIConstants.au3>
#include <WindowsConstants.au3>

HotKeySet('{ESC}', '_Pro_Exit'); Закрыть скрипт: ESC
Global $hParentWin, $hChildWin
_Example_1()

Func _Example_1()
    GUIDelete($hParentWin)
    GUIDelete($hChildWin)

    $hParentWin = GUICreate('Родительскоре окно', 300, 400, 100, 250)
        GUISetOnEvent($GUI_EVENT_CLOSE, '_Pro_Exit')
        GUISetBkColor(0x0000ff, $hParentWin)

    GUICtrlCreateButton('Пример 1', 10, 170, 150, 22)
        GUICtrlSetOnEvent(-1, '_Open_Example_1')
    GUICtrlCreateButton('Пример 2', 10, 195, 150, 22)
        GUICtrlSetOnEvent(-1, '_Open_Example_2')

    $hChildWin = GUICreate('Дочерное окно', 250, 250, 300, 300, -1, -1, $hParentWin)
        GUISetOnEvent($GUI_EVENT_CLOSE, '_Win_Close')
        GUISetBkColor(0x00ff00, $hChildWin)

    GUISwitch($hParentWin)
    GUICtrlCreateTab(10, 10, 150, 150)
    GUICtrlCreateTabItem('1-1')
    GUICtrlCreateTabItem('1-1')

    GUISwitch($hChildWin)
    GUICtrlCreateTab(10, 10, 150, 150)
    GUICtrlCreateTabItem('2-1')
    GUICtrlCreateTabItem('2-1')

    GUISetState(@SW_SHOW, $hParentWin)
    GUISetState(@SW_SHOW, $hChildWin)
EndFunc

Func _Example_2()
    GUIDelete($hParentWin)
    GUIDelete($hChildWin)

    $hParentWin = GUICreate('Родительскоре окно', 550, 400, 100, 250)
        GUISetOnEvent($GUI_EVENT_CLOSE, '_Pro_Exit')
        GUISetBkColor(0x0000ff, $hParentWin)

    GUICtrlCreateButton('Пример 1', 10, 170, 150, 22)
        GUICtrlSetOnEvent(-1, '_Open_Example_1')
    GUICtrlCreateButton('Пример 2', 10, 195, 150, 22)
        GUICtrlSetOnEvent(-1, '_Open_Example_2')

    $hChildWin = GUICreate('Дочерное окно', 250, 250, 200, 20, BitOR($WS_CHILD, $WS_TABSTOP), -1, $hParentWin)
        GUISetOnEvent($GUI_EVENT_CLOSE, '_Win_Close')
        GUISetBkColor(0x00ff00, $hChildWin)

    GUISwitch($hParentWin)
    GUICtrlCreateTab(10, 10, 150, 150)
    GUICtrlCreateTabItem('1-1')
    GUICtrlCreateTabItem('1-1')

    GUISwitch($hChildWin)
    GUICtrlCreateTab(10, 10, 150, 150)
    GUICtrlCreateTabItem('2-1')
    GUICtrlCreateTabItem('2-1')

    GUISetState(@SW_SHOW, $hParentWin)
    GUISetState(@SW_SHOW, $hChildWin)
EndFunc

While 1
    Sleep(10)
WEnd

Func _Win_Close($hWnd='')
    If NOT Eval('hWnd') Then Assign('hWnd', @GUI_WinHandle, 1)
    GUIDelete($hWnd)
EndFunc

Func _Pro_Exit()
    Exit
EndFunc

Func _Open_Example_1()
    _Example_1()
EndFunc
Func _Open_Example_2()
    _Example_2()
EndFunc


Цитата Yashied:
Ну, или ждем proxy. »
угадал )



Пример, что выше, с комментариями:
читать дальше »

Код: Выделить весь код
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <StructureConstants.au3>
#include <GUIScrollBars.au3>
#include <ScrollBarConstants.au3>

    Local $nFileMenu, $nExititem, $GUIMsg, $hGUI, $h_cGUI, $h_cGUI2
    Local $listview, $button

;~  Создается родительское окно
    $hGUI = GUICreate("ScrollBar Example", 600, 600, -1, -1, BitOR($WS_MINIMIZEBOX, $WS_CAPTION, $WS_POPUP, $WS_SYSMENU, $WS_SIZEBOX))
    GUISetBkColor(0x88AABB)

    $nFileMenu = GUICtrlCreateMenu("File")
    $nExititem = GUICtrlCreateMenuItem("Exit", $nFileMenu)
    $listview = GUICtrlCreateListView("col1  |col2|col3  ", 10, 10, 200, 150);,$LVS_SORTDESCENDING)
    $button = GUICtrlCreateButton("Value?", 75, 170, 70, 20)
    GUICtrlSetResizing($button, $GUI_DOCKALL)
    For $x = 1 To 30
        GUICtrlCreateListViewItem("item" & $x & "|col2|col3", $listview)
    Next
    GUICtrlSetResizing($listview, $GUI_DOCKALL)

;~  Созхдается дочерное окно
;~  Указывается стиль: $WS_CHILD, тогда окно будет внутри родительского окна
;~  Указывается хэндел (указатель) на родительское окно: $hGUI
    $h_cGUI = GUICreate("Child GUI", 200, 200, 10, 200, BitOR($WS_CHILD, $WS_TABSTOP), $WS_EX_CLIENTEDGE, $hGUI)
    GUICtrlCreateButton("a button", 10, 10, 90, 20)
    GUICtrlCreateButton("a button", 10, 35, 90, 20)
    GUISetBkColor(0X006400)
    GUISetState()
    GUICtrlSetResizing($h_cGUI, $GUI_DOCKALL)

    GUISwitch($hGUI)

    $h_cGUI2 = GUICreate("Child GUI", 200, 200, 215, 10, BitOR($WS_CHILD, $WS_TABSTOP), $WS_EX_CLIENTEDGE, $hGUI)
    GUICtrlCreateButton("a button", 10, 10, 90, 20)
    GUISetBkColor(0X006400)
    GUISetState()
    GUICtrlSetResizing($h_cGUI2, $GUI_DOCKALL)

    GUISwitch($hGUI)

    GUISetState(@SW_SHOW, $hGUI)

    While 1
        $GUIMsg = GUIGetMsg()

        Switch $GUIMsg
            Case $GUI_EVENT_CLOSE, $nExititem
                ExitLoop
        EndSwitch
    WEnd

Одна беда у этой технологии, имхо все рушит, - то, что в дочерных окнах нет возможности перемещатся между элементами управления с помощью клавиши TAB ....
Запусти это пример и попробуй перейти с одной кнопки на другу через TAB (в окне где 2-е кнопки).

-------
Мысли-читатель сломался, может подробней расскажите?
А где исходный код? Или мы стихи обсуждаем?! )) Настройки темы > Решено ?

Это сообщение посчитали полезным следующие участники:

Отправлено: 01:23, 17-07-2009 | #5