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

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

Аватара для Creat0R

Must AutoIt


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

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


amel27,
Цитата:
можно примерчик?
Конечно, извеняюсь что сразу не привёл его...

Код: Выделить весь код
#include <GuiConstants.au3>

Global $Width = 500
Global $Height = 360

$Gui = GuiCreate("Test", $Width, $Height, -1, -1, $WS_SIZEBOX+$WS_MINIMIZEBOX+$WS_MAXIMIZEBOX+$WS_BORDER)
GUIRegisterMsg(0x24, "MY_WM_GETMINMAXINFO")

$LV = GUICtrlCreateListView("Column", 20, 40, $Width-40, $Height-120)

$ButtonOK = GUICtrlCreateButton("OK", 20, $Height-60, 70, 20)
GUICtrlSetResizing(-1, $GUI_DOCKSIZE)

$ButtonExit = GUICtrlCreateButton("Exit", 120, $Height-60, 70, 20)
GUICtrlSetResizing(-1, $GUI_DOCKSIZE)

;Задаём новый размер ГУИ, это будет считано с инишки
$NewWidth = 700
$NewHeight = 400

$WinPosArr = WinGetPos($Gui) ;только для получения X и Y позиции
WinMove($Gui, "", $WinPosArr[0], $WinPosArr[1], $NewWidth, $NewHeight)

; Тут нужно выызвать ту самую имитацию, чтобы все контроли подстроились под новый размер.

GUISetState()

While 1
    $Msg = GUIGetMsg()
    Switch $Msg
        Case -3, $ButtonExit
            Exit
        Case Else

                EndSwitch
WEnd

; Функция для ограничения (минимального) размера окна гуи
Func MY_WM_GETMINMAXINFO($hWnd, $Msg, $wParam, $lParam)
    Local $MINMAXINFO = DllStructCreate("int;int;int;int;int;int;int;int;int;int",$lParam)
    Local $MINGuiX = 508, $MINGuiY = 368
    DllStructSetData($MINMAXINFO, 7, $MINGuiX)
    DllStructSetData($MINMAXINFO, 8, $MINGuiY)
    Return 0
EndFunc
Цитата:
обещанная CallBack-функция для _FileSelectFolder:
Спасибо!

Осталось несколько уточнении

1. Если начальный каталог не имеет слеша на конце (\), то этот каталог не задаётся функцией, а также если начальный каталог является буквой диска, то таких слешей должно быть аж два (C:\\).
Я конечно могу это решить стандартными средствами, поставив это в начало главной функции...

Код: Выделить весь код
If StringLen($sIniDir) <= 3 Then $sIniDir &= "\"
If StringRight($sIniDir, 1) <> "\" Or StringLen($sIniDir) <= 3 Then $sIniDir &= "\"
(Кстати, $sIniDir это опечатка? может $sInitDir? )...

Но просто интересно, почему так происходит?

2. Может функцию диактивирования кнопки “ОК” сделать опционально? т.е чтобы это происходило только при использовании флага $BIF_RETURNONLYFSDIRS? (Сейчас оно в любом случае срабатывает).

3. При выборе обьекта рабочего стола, кнопка “ОК” тоже деактивируется, этот обьект вроде является папкой (т.е рабочий путь)?

4. Когда используется флаг $BIF_BROWSEINCLUDEFILES (для выбора файлов), то их выбрать невозможно - Кнопка “ОК” не активна.

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Последний раз редактировалось Creat0R, 03-08-2007 в 02:56.


Отправлено: 00:54, 03-08-2007 | #224