Что нового

[Элементы GUI] GuiCtrlCreate* vs _GUICtrl*_Create В чем разница? Что использовать?

EqKeeper

Новичок
Сообщения
29
Репутация
1
Доброго времени суток!

Собственно сабж. Разясните, пожалуйста, новичку - в ем разница между этими видами функций? Например, между:
_GUICtrlButton_Create и GUICtrlCreateButton? Первый возвращает хэндл, второй ID. Но, я так понимаю, на этом разница не заканчивается? Какими функциями лучше пользоваться при создании? Можно ли отловить сообщения (аля BM_CLICK) для контролова, созданных GuiCtrlCreate*?

Надеюсь на вашу помощь! Заранее спасибо.
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
_GUICtrl*_Create() работают напрямую с WinAPI, отсюда и хендл. В настоящее время в AutoIt реализована полноценная поддержка GUI, и в большинстве случаев целесообразней использовать нативные AutoIt функции - GUICtrlCrate*(). Все сообщения, которые поддерживает WinAPI, естественно, справедливы и для элементов, созданных посредством AutoIt. Я рекомендую создавать GUI с помощью GUICtrlCreate*() и использовать функции _GUICtrl*_*() для расширения их возможностей.

Код:
#Include <ComboConstants.au3>
#Include <GUIComboBox.au3>

GUICreate('MyGUI', 400, 400)
$Combo = GUICtrlCreateCombo('', 20, 20, 200, 21, $CBS_DROPDOWNLIST)
For $i = 0 To 9
	_GUICtrlComboBox_AddString(-1, 'Item' & $i)
Next
_GUICtrlComboBox_SetExtendedUI(-1, 1)
_GUICtrlComboBox_SetCurSel(-1, 4)
GUISetState()

Do
Until GUIGetMsg() = -3



Добавлено:
Сообщение автоматически объединено:

Кроме того, если вы будите содавать элементы с помощью _GUICtrl*_Create() функций, то это затруднит "общение" с этими элементами, придется создавать обработчики WM-сообщений и реализовывать все через них (см. примеры в оф. справке).
 
Автор
E

EqKeeper

Новичок
Сообщения
29
Репутация
1
Yashied сказал(а):


Добавлено:
Сообщение автоматически объединено:

Кроме того, если вы будите содавать элементы с помощью _GUICtrl*_Create() функций, то это затруднит "общение" с этими элементами, придется создавать обработчики WM-сообщений и реализовывать все через них (см. примеры в оф. справке).



Большое спасибо. Ну, я и начинал с _GuiCtrl*_Create() и поэтому сейчас всегда пишу обработчики WM-сообщений на основе тех самых примеров из оф.справки. Буду переучиваться! Хотя пока и не совсем понимаю, как буду работать с универсальным GUIGetMsg()... но разберусь! Мануал есть - остальное приложится.
Еще раз спасибо! :smile:
 
Верх