как сделать чтобы второе окошко GUI появилось с теми-же координатами где закрывалось старое? Я как ни пытаюсь -у меня либо окно появляется там-же где и появилось первое (Variant1()), либо копирую позицию старого окна и вставляю в новое, но тогда у меня элементы меню появляются вообще непойми где (Variant1()).
чую что проблема возникает из за -1,-1 в размерах нового окна, но просто "","" там поставить не получается. а раз -1 значит размеры окна привязаны GUICoordMode эксперименты с коим тоже ни к чему хорошему не привели(
в архиве файлы к скрипту.
чую что проблема возникает из за -1,-1 в размерах нового окна, но просто "","" там поставить не получается. а раз -1 значит размеры окна привязаны GUICoordMode эксперименты с коим тоже ни к чему хорошему не привели(
в архиве файлы к скрипту.
Код:
#include <Array.au3> ;работа с массивами
#include <GUIConstantsEx.au3> ;базовый интерфейс
#include <WindowsConstants.au3> ;создание окна
#include "_GUICreateAlfa.au3" ;интерфейс с прозрачностью
#include <ButtonConstants.au3> ;свойства кнопок в интерфейсе
#Include <File.au3> ;работа с файлами
#include <Date.au3> ;Возвращает текущую дату в формате ПК.
Variant1()
Variant2()
func Variant1()
FileInstall(@ScriptDir&"\1.bmp",@TempDir&"\1.bmp")
FileInstall(@ScriptDir&"\2.bmp",@TempDir&"\2.bmp")
FileInstall(@ScriptDir&"\3.bmp",@TempDir&"\3.bmp")
FileInstall(@ScriptDir&"\4.bmp",@TempDir&"\4.bmp")
FileInstall(@ScriptDir&"\5.bmp",@TempDir&"\5.bmp")
FileInstall(@ScriptDir&"\6.bmp",@TempDir&"\6.bmp")
FileInstall(@ScriptDir&"\выход.bmp",@TempDir&"\выход.bmp")
FileInstall(@ScriptDir&"\оболочка.png",@TempDir&"\оболочка.png")
FileInstall(@ScriptDir&"\1-меню.png",@TempDir&"\1-меню.png")
FileInstall(@ScriptDir&"\1-1.bmp",@TempDir&"\1-1.bmp")
;создать интерфейс с прозрачностью
$PrWn = _GUICreateAlfa("Проектик",@TempDir&"\оболочка.png")
;кнопки
$1_prct = GUICtrlCreateButton("",9,70,140,37,$BS_BITMAP)
GUICtrlSetImage(-1,@TempDir&"\1.bmp", -1)
$2_prct = GUICtrlCreateButton("",9,107,140,37,$BS_BITMAP)
GUICtrlSetImage(-1,@TempDir&"\2.bmp", -1)
$3_prct = GUICtrlCreateButton("",9,144,140,37,$BS_BITMAP)
GUICtrlSetImage(-1,@TempDir&"\3.bmp", -1)
$4_prct = GUICtrlCreateButton("",148,70,140,37,$BS_BITMAP)
GUICtrlSetImage(-1,@TempDir&"\4.bmp", -1)
$5_prct = GUICtrlCreateButton("",148,107,140,37,$BS_BITMAP)
GUICtrlSetImage(-1,@TempDir&"\5.bmp", -1)
$6_prct = GUICtrlCreateButton("",148,144,140,37,$BS_BITMAP)
GUICtrlSetImage(-1,@TempDir&"\6.bmp", -1)
$7_prct = GUICtrlCreateButton("",236,53,50,19,$BS_BITMAP)
GUICtrlSetImage(-1,@TempDir&"\выход.bmp", -1)
GUICtrlSetState($1_prct, $GUI_FOCUS) ;выделить 1 кнопку
GUISetState();СОЗДАТЬ ОКНО
WinSetOnTop($PrWn, "", 1);вытащить его поверх всех окон
$mlop = 0
;цикл ожидания
While $mlop = 0
Switch GUIGetMsg()
Case $1_prct
$PrWn2 = _GUICreateAlfa("Проектик",@TempDir&"\1-меню.png")
$1_prct = GUICtrlCreateButton("",9,70,140,37,$BS_BITMAP)
; кнопка нормально создается там где нужно.
GUICtrlSetImage(-1,@TempDir&"\1.bmp", -1)
GUISetState();СОЗДАТЬ ОКНО
WinSetOnTop($PrWn2, "", 1);вытащить его поверх всех окон
Guidelete($PrWn);удалить старое окно
sleep(500)
$mlop = 1
EndSwitch
WEnd
;удалить файлы из Temp
filedelete(@TempDir&"\1.bmp")
filedelete(@TempDir&"\2.bmp")
filedelete(@TempDir&"\3.bmp")
filedelete(@TempDir&"\4.bmp")
filedelete(@TempDir&"\5.bmp")
filedelete(@TempDir&"\6.bmp")
filedelete(@TempDir&"\выход.bmp")
filedelete(@TempDir&"\оболочка.png")
filedelete(@TempDir&"\1-меню.png")
filedelete(@TempDir&"\1-1.bmp")
GUIDelete()
exit
endfunc
func Variant2()
FileInstall(@ScriptDir&"\1.bmp",@TempDir&"\1.bmp")
FileInstall(@ScriptDir&"\2.bmp",@TempDir&"\2.bmp")
FileInstall(@ScriptDir&"\3.bmp",@TempDir&"\3.bmp")
FileInstall(@ScriptDir&"\4.bmp",@TempDir&"\4.bmp")
FileInstall(@ScriptDir&"\5.bmp",@TempDir&"\5.bmp")
FileInstall(@ScriptDir&"\6.bmp",@TempDir&"\6.bmp")
FileInstall(@ScriptDir&"\выход.bmp",@TempDir&"\выход.bmp")
FileInstall(@ScriptDir&"\оболочка.png",@TempDir&"\оболочка.png")
FileInstall(@ScriptDir&"\1-меню.png",@TempDir&"\1-меню.png")
FileInstall(@ScriptDir&"\1-1.bmp",@TempDir&"\1-1.bmp")
;создать интерфейс с прозрачностью
$PrWn = _GUICreateAlfa("Проектик",@TempDir&"\оболочка.png")
;кнопки
$1_prct = GUICtrlCreateButton("",9,70,140,37,$BS_BITMAP)
GUICtrlSetImage(-1,@TempDir&"\1.bmp", -1)
$2_prct = GUICtrlCreateButton("",9,107,140,37,$BS_BITMAP)
GUICtrlSetImage(-1,@TempDir&"\2.bmp", -1)
$3_prct = GUICtrlCreateButton("",9,144,140,37,$BS_BITMAP)
GUICtrlSetImage(-1,@TempDir&"\3.bmp", -1)
$4_prct = GUICtrlCreateButton("",148,70,140,37,$BS_BITMAP)
GUICtrlSetImage(-1,@TempDir&"\4.bmp", -1)
$5_prct = GUICtrlCreateButton("",148,107,140,37,$BS_BITMAP)
GUICtrlSetImage(-1,@TempDir&"\5.bmp", -1)
$6_prct = GUICtrlCreateButton("",148,144,140,37,$BS_BITMAP)
GUICtrlSetImage(-1,@TempDir&"\6.bmp", -1)
$7_prct = GUICtrlCreateButton("",236,53,50,19,$BS_BITMAP)
GUICtrlSetImage(-1,@TempDir&"\выход.bmp", -1)
GUICtrlSetState($1_prct, $GUI_FOCUS) ;выделить 1 кнопку
GUISetState();СОЗДАТЬ ОКНО
WinSetOnTop($PrWn, "", 1);вытащить его поверх всех окон
$mlop = 0
;цикл ожидания
While $mlop = 0
Switch GUIGetMsg()
Case $1_prct
$oldwinpos = wingetpos($PrWn)
$PrWn2 = _GUICreateAlfa("Проектик",@TempDir&"\1-меню.png",-1,-1,$oldwinpos[0],$oldwinpos[1])
$1_prct = GUICtrlCreateButton("",9,70,140,37,$BS_BITMAP)
; !!! кнопка появляется незнамо-где( и при попытке подтянуть ее к основному окну меняя параметры позиции -исчезает.
GUICtrlSetImage(-1,@TempDir&"\1.bmp", -1)
GUISetState();СОЗДАТЬ ОКНО
WinSetOnTop($PrWn2, "", 1);вытащить его поверх всех окон
Guidelete($PrWn);удалить старое окно
sleep(500)
$mlop = 1
EndSwitch
WEnd
;удалить файлы из Temp
filedelete(@TempDir&"\1.bmp")
filedelete(@TempDir&"\2.bmp")
filedelete(@TempDir&"\3.bmp")
filedelete(@TempDir&"\4.bmp")
filedelete(@TempDir&"\5.bmp")
filedelete(@TempDir&"\6.bmp")
filedelete(@TempDir&"\выход.bmp")
filedelete(@TempDir&"\оболочка.png")
filedelete(@TempDir&"\1-меню.png")
filedelete(@TempDir&"\1-1.bmp")
GUIDelete()
exit
endfunc