Имя пользователя:
Пароль:
 

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

Googler


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

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


Creat0R
Цитата:
Или что-то другое имеется в виду? покажи плиз на примере »
ура, дошло! ...извиняюсь, невнимательно читал твой код
провел вот такой эксперимент:
Код: Выделить весь код
#include <GUIConstants.au3>
#include <GuiTreeView.au3>
Opt("GuiOnEventMode", 1)

$Gui = GUICreate("Test", 300, 200)
GUISetOnEvent(-3, "OnExit")

$TreeView = GUICtrlCreateTreeView(20, 20)
$hTreeView= IDToHwnd($Gui, $TreeView) ; хэндл $TreeView

$TV_ID1 = GUICtrlCreateTreeViewItem("Created1", $TreeView)
$hItem = _GUICtrlTreeViewInsertItem($TreeView, "Inserted1")
$TV_ID2 = GUICtrlCreateTreeViewItem("Created2", $TreeView)

GUISetOnEvent(-3, "OnExit")
GUISetState()

; отсюда видно что элемент, вставленный через _GUICtrlTreeViewInsertItem()
; не получает своего ControlID (нумерация ID сквозная)
ConsoleWrite($TreeView&@CRLF) ; ControlID $TreeView
ConsoleWrite($TV_ID1  &@CRLF) ; ControlID $TV_ID1
                              ; тут должен был быть ControlID $hItem
ConsoleWrite($TV_ID2  &@CRLF) ; ControlID $TV_ID2

; это просто хэндл $TreeView
ConsoleWrite(@CRLF)
ConsoleWrite('0x'&Hex($hTreeView)&@CRLF)

; видно, что Hwnd элементов TreeView не являетя Hwnd окна:
ConsoleWrite(@CRLF)
ConsoleWrite('0x'&Hex(IDToHwnd($Gui, 4))&@CRLF)
ConsoleWrite('0x'&Hex(IDToHwnd($Gui, 5))&@CRLF)
; или даже так, один фиг:
ConsoleWrite(@CRLF)
ConsoleWrite('0x'&Hex(IDToHwnd($hTreeView, 4))&@CRLF)
ConsoleWrite('0x'&Hex(IDToHwnd($hTreeView, 5))&@CRLF)

While 1
    Sleep(100)
WEnd

Func HwndToID($hWnd)
    Local $iRet = DllCall("user32.dll", "int", "GetDlgCtrlID", "hwnd", $hWnd)
    Return $iRet[0]
EndFunc

Func IDToHwnd($hWndMain, $CtrlID)
    Local $iRet = DllCall("user32.dll", "int", "GetDlgItem", "hwnd", $hWndMain, "int", $CtrlID)
    Return $iRet[0]
EndFunc

Func OnExit()
    Exit
EndFunc
Цитата:
ведь если поставить событие для TreeView, то оно не срабатывает как таковое »
Хм... вот это странно, ведь ControlID у него есть... можно было и сделать для случая клика на любом пункте TreeView

Цитата:
но с ограничением в количестве создаваемых элементов »
откуда инфа и чем ограничено количество?...
может ограничение как раз и связано с присвоением пунктам ControlID?

так глядишь и сам начну понимать кой-чего в ГУИ

Отправлено: 13:23, 28-10-2007 | #651