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

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

Аватара для beve

Старожил


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

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


---Спасибо,почти то что нужно, классно придумано, насчет, изменения ширины Дочернего окна под ширину окна нужной мне проги. Но возникли некоторые трудности, помоги решить. При запуске скрипта (а в моем случае я переделал, чтобы скрипт, приклеивался не снизу, а чуть ниже от верха и был поверх этого самого окна) - Дочернее окно прилепляется к любому окну которое активно в этот самый час и которое я двигаю мышкой, будь то блокнот - оно с блокнотом двигается, я схватил мышкой SciTe - двигается вместе с SciTe!, а мне нужно что бы Дочернее окно двигалось только вместе с моим окном, например с Блокнотом в нижеописанном скрипте, и при свертывании в трей Блокнота, Дочернее окно тоже свертывалось вместе с ним.
Код: Выделить весь код
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <Timers.au3>

$hParentWnd=Wingetpos("Безымянный - Notepad2")

$aParent_Pos = WinGetPos($hParentWnd)

$hChildWnd = GUICreate("Дополнительное окно", 600, 70, $aParent_Pos[0], $aParent_Pos[1] + $aParent_Pos[3] - 380, _
    BitOR($WS_POPUP, $WS_BORDER), $WS_EX_TOPMOST, $hParentWnd)

GUISetBkColor(0x09FF00)
GUICtrlCreateLabel("Дочернее окно", 5, 5, 185, 25)

GUISetState(@SW_SHOW, $hParentWnd)
GUISetState(@SW_SHOW, $hChildWnd)

$iTimer_ID = _Timer_SetTimer($hChildWnd, 10, "_WinMove_Proc")

While 1
    $aMsg = GUIGetMsg(1) ;using the "advanced" parameter

    Switch $aMsg[0]
        Case $GUI_EVENT_CLOSE
            If $aMsg[1] = $hParentWnd Then ExitLoop
           EndSwitch
WEnd

_Timer_KillTimer($hChildWnd, $iTimer_ID)

Func _WinMove_Proc($hWnd, $nMsg, $iIDTimer, $dwTime)
    Local $aParent_Pos = WinGetPos($hParentWnd)
    Local $aChild_Pos = WinGetPos($hWnd)

    If $aParent_Pos[0] <> $aChild_Pos[0] Or $aParent_Pos[1] <> ($aChild_Pos[1] - $aParent_Pos[3] - 10) Then _
        WinMove($hWnd, "", $aParent_Pos[0], $aParent_Pos[1] + $aParent_Pos[3] - 380, $aParent_Pos[2])
EndFunc
Для работы этого примерочного кода, notepad2 должен быть запущен...ну или другую прогу там можно прописать.

Отправлено: 01:30, 09-02-2009 | #3