Что нового

[Окна, Диалоги] Скрыть форму созданную с помощью _GDIPlus_Startup

astati

Новичок
Сообщения
145
Репутация
4
При запуски скрипта создается форма с помощью _GDIPlus_Startup. После нажатия на кнопку открывается вторая.
Задача: Можно ли как-то скрыть первую форму(созданную с помощью _GDIPlus_Startup)?
Хотяб на команду в справке натолкните...
Код:
$ooo = _GDIPlus_Startup()
$sImage = _GDIPlus_ImageLoadFromFile(@TempDir & '\4.png')
$sBitmap = _GDIPlus_BitmapCreateHBITMAPFromBitmap($sImage)
_GDIPlus_Shutdown()
$sForm = GUICreate('', 442, 332, -1, -1, $WS_POPUP, $WS_EX_LAYERED)
_WinAPI_UpdateLayeredWindowEx($sForm, -1, -1, $sBitmap, 255)
GUIRegisterMsg($WM_NCHITTEST, 'WM_NCHITTEST')
GUISetState()
$iPos = WinGetPos($sForm)
$sChild = GUICreate('', 610, 600, $iPos[0], $iPos[1], $WS_POPUP, $WS_EX_LAYERED, $sForm)
GUISetBkColor(0xFF00DC)
$iB1 = GUICtrlCreateButton('Default', 13, 205, 100, 30)
_WinAPI_SetLayeredWindowAttributes($sChild, 0xFF00DC, 255)
GUIRegisterMsg($WM_MOVE, 'WM_MOVE')
GUISetState()
$iB2 = GUICtrlCreateButton('Ero +', 13, 235, 100, 30)
_WinAPI_SetLayeredWindowAttributes($sChild, 0xFF00DC, 255)
GUIRegisterMsg($WM_MOVE, 'WM_MOVE')
GUISetState()
While 1
   Switch GUIGetMsg()
   Case $iB1
	  _0x0991()
    Case $iB2
	  _0x0992()
 EndSwitch
WEnd
Func _0x0991()
   GUISetState(@SW_HIDE)
   _GDIPlus_Startup()
$hImage = _GDIPlus_ImageLoadFromFile(@TempDir & '\2.png');'\2.png'
$hBitmap = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hImage)
...
 

Redline

AutoIT Гуру
Сообщения
506
Репутация
375
У меня так получилось:
Код:
#include <WindowsConstants.au3>
#include <GDIPlus.au3>
#include <WinAPIEx.au3>

$ooo = _GDIPlus_Startup()
$sImage = _GDIPlus_ImageLoadFromFile(@ScriptDir & '\nelson-muntz.png')
$sBitmap = _GDIPlus_BitmapCreateHBITMAPFromBitmap($sImage)
_GDIPlus_Shutdown()
$sForm = GUICreate('', 442, 332, -1, -1, $WS_POPUP, $WS_EX_LAYERED)
_WinAPI_UpdateLayeredWindowEx($sForm, -1, -1, $sBitmap, 255)
GUISetState()
$iPos = WinGetPos($sForm)
$sChild = GUICreate('', 610, 600, $iPos[0], $iPos[1], $WS_POPUP, $WS_EX_LAYERED, $sForm)
GUISetBkColor(0xFF00DC)
$iB1 = GUICtrlCreateButton('Default', 13, 205, 100, 30)
_WinAPI_SetLayeredWindowAttributes($sChild, 0xFF00DC, 255)
GUISetState()
$iB2 = GUICtrlCreateButton('Ero +', 13, 235, 100, 30)
_WinAPI_SetLayeredWindowAttributes($sChild, 0xFF00DC, 255)
GUISetState()
While 1
	Switch GUIGetMsg()
		Case -3
			Exit
		Case $iB1
			GUISetState(@SW_HIDE, $sForm)
		Case $iB2
			GUISetState(@SW_SHOW, $sForm)
	EndSwitch
WEnd

PS: В следующий раз выкладывайте сразу рабочий код, чтобы его не нужно было допиливать перед запуском, т.е. допишите все нужные инклюды и уберите ненужные функции. Вы ведь за помощью пришли, а сами только усложнили задачу.
Ничего личного :smile:
 
Автор
A

astati

Новичок
Сообщения
145
Репутация
4
Ага учту.
Спс за помощь. смысл понял...
 
Верх