PDA

Показать полную графическую версию : [решено] ToolTip в правом нижнем углу


Smokie_id11243755
03-09-2010, 00:30
Как пристыковать ToolTip к правому краю экрана вроде понятно. Есть конечно минус - каждый раз подгонять под текст. Но пристыковать к панели задач - проблема.

Возможно ли сделать так, чтобы ToolTip автоматом становился в правый нижний угол (конечно же над панелью задач)?

Iska
03-09-2010, 15:33
Вообще-то это уже TrayTip (http://www.autoitscript.com/autoit3/docs/functions/TrayTip.htm).

beve
03-09-2010, 15:34
Как пристыковать ToolTip к правому краю экрана вроде понятно. »
Если это понятно, то по аналогии высчитай и нижние координаты для ToolTip. Вот есть такая функция:
_GetSizeDesktop()

Func _GetSizeDesktop()
Local $Wa
$WA=DllStructCreate("long;long;long;long")
DllCall("User32.dll","int","SystemParametersInfo","uint",48,"uint",0,"ptr",DllStructGetPtr($WA),"uint",0)
;$WAL=DllStructGetData($WA,1)
;$WAT=DllStructGetData($WA,2) ;;($WAL,$WAT) - левый верхний угол
;MsgBox(0,"Свободный левый верхний угол", $WAL& " X " &$WAT)

$WAR=DllStructGetData($WA,3)
$WAB=DllStructGetData($WA,4) ;($WAR,$WAB ) - правый нижний угол...
MsgBox(0,"Свободный правый нижний угол", $WAR& " X " &$WAB)
EndFunc

madmasles
03-09-2010, 16:24
beve,
У меня на XP SP3 эта функция неправильно определяет угол, если в Свойствах панели задач и меню "Пуск" стоит "галка" Автоматически скрывать панель задач. С этой "галкой" у меня так работает:HotKeySet('{ESC}', 'MyExit') ;Esc - выход

$aPosTray = ControlGetPos('[Class:Shell_TrayWnd]', '', '[CLASS:TrayNotifyWnd; INSTANCE:1]')
$aPosWindow = ControlGetPos('[Class:Progman]', '', '[CLASS:SysListView32; INSTANCE:1]')
While 1
If $aPosWindow[3] = @DesktopHeight Then
$aPosMouse = MouseGetPos()
If $aPosMouse[1] > @DesktopHeight - 3 Then
ToolTip('Test ToolTip', @DesktopWidth - 100, @DesktopHeight - $aPosTray[3] - 16)
EndIf
If $aPosMouse[1] < @DesktopHeight - $aPosTray[3] - 12 Then
ToolTip('Test ToolTip', @DesktopWidth - 100, @DesktopHeight - 16)
EndIf
Else
ToolTip('Test ToolTip', @DesktopWidth - 100, $aPosWindow[3] - 16)
EndIf
Sleep(100)
WEnd

Func MyExit()
Exit
EndFunc ;==>MyExit

FlatX007
03-09-2010, 17:57
А если поискать поиском то можно найти мою старую тему - http://forum.oszone.net/thread-149945.html

madmasles
03-09-2010, 19:05
А если поискать поиском »Мне было интересно самому это сделать. :)

FlatX007
03-09-2010, 19:18
Мне было интересно самому это сделать. »

а мой пример на Win 7 не сработает, тк "размер" десктопа остаётся постоянным те не зависит от размера панели задач. Ну это только по моему примеру, он делался для определения положения панели задач а не координат.




© OSzone.net 2001-2012