![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] $WS_POPUP GIF картинка с прозрачным фоном реально? |
|
[решено] $WS_POPUP GIF картинка с прозрачным фоном реально?
|
Новый участник Сообщения: 24 |
Всем привет, вот есть вопрос: у меня GIF картинка имеющая прозрачныи фон, так этот фон когда GUI включается отображается белым цветом. Есть ли возможность сделать фон прозрачным в GUI.
Заранее спасибо #Include <StaticConstants.au3> #Include <WinAPIEx.au3> #Include <WindowsConstants.au3> #include <GUIConstants.au3> $MainGUI = GUICreate("Pinnwand",306,236,-1,-1,$WS_POPUP, $WS_EX_TOOLWINDOW) GUICtrlCreatePic(@ScriptDir & "\lll.gif",0,0, 0,0) $Exit = GUICtrlCreateButton("Beenden",387,337,100,25) GUISetState(@SW_SHOW) While 1 Sleep(10) $nMsg = GUIGetMsg() Switch $nMsg Case $Exit Exit EndSwitch WEnd |
|
Отправлено: 00:19, 25-06-2010 |
Новый участник Сообщения: 36
|
Профиль | Отправить PM | Цитировать ;~ ------------------------------------------------------- ; Description : ; Written by : Alex Pougach ; Date : 24/09/2008 ; ; With help of Igal Bravshtein and Creat0R ; -------------------------------------------------------- #include-once ; Transp_PNG( $temp , x , y),$temp = "E:\VBA\AutoIt\GUI\2.png" ; $temp- Doroga k file ; x - prozrachnost ; y- Plavnost poiavleniia #NoTrayIcon #include <GDIPlus.au3> #include <GuiComboBox.au3> #include <WindowsConstants.au3> #include <GuiConstantsEx.au3> #include <ButtonConstants.au3> #include <WinAPI.au3> ;~ Global Const $WM_LBUTTONDOWN = 0x0201 ;~ Global Const $WM_LBUTTONUP = 0x0202 ;~ Global Const $ULW_ALPHA = 2 Global Const $AC_SRC_ALPHA = 1 Global $launchDir = @DesktopDir, $GUI Global $iExitLoop = False Func Transp_PNG($pngSrc, $iOpacity = 255, $EnableFade = True) Local $hImage,$width,$height,$BtnExit ;~ ConsoleWrite( $temp & @LF) If $iOpacity < 0 Then $iOpacity = 0 If $iOpacity > 255 Then $iOpacity = 255 ; Load PNG file as GDI bitmap _GDIPlus_Startup() ;~ $pngSrc = $temp $hImage = _GDIPlus_ImageLoadFromFile($pngSrc) ; Extract image width and height from PNG $width = _GDIPlus_ImageGetWidth($hImage) $height = _GDIPlus_ImageGetHeight($hImage) ; Create layered window $GUI = GUICreate("", $width, $height, -1, -1, $WS_POPUP, $WS_EX_LAYERED) WinSetOnTop($GUI, "", 1) GUIRegisterMsg(0x0201, "WM_LBUTTONDOWN") GUIRegisterMsg(0x0202, "WM_LBUTTONUP") GUIRegisterMsg($WM_WINDOWPOSCHANGED, "WM_WINDOWPOSCHANGED") GUISetState() If $EnableFade Then ;fade in png background For $i = 0 To $iOpacity Step 1 SetBitmap($GUI, $hImage, $i) Next Else SetBitmap($GUI, $hImage, $iOpacity) EndIf ; set default button for Enter key activation - renders outside GUI window $BtnExit = GUICtrlCreateButton("Exit", $width, $height, 10, 10, $BS_DEFPUSHBUTTON) While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE, $BtnExit ExitLoop EndSwitch If $iExitLoop Then ExitLoop WEnd If $EnableFade Then ;fade out png background For $i = $iOpacity To 0 Step -1 SetBitmap($GUI, $hImage, $i) Next Else SetBitmap($GUI, $hImage, 0) EndIf EndFunc ;==>Transp_PNG ; Handle the WM_LBUTTONDOWN for the layered window so it can be dragged by clicking anywhere on the image. Func WM_LBUTTONDOWN($hWnd, $iMsg, $wParam, $lParam) If BitAND(WinGetState($hWnd), 32) Then Return $GUI_RUNDEFMSG DllCall("user32.dll", "long", "SendMessage", "hwnd", $hWnd, "int", $WM_SYSCOMMAND, "int", 0xF009, "int", 0) EndFunc ;==>WM_LBUTTONDOWN Func WM_LBUTTONUP($hWnd, $iMsg, $wParam, $lParam) $iExitLoop = True EndFunc ;==>WM_LBUTTONUP Func WM_WINDOWPOSCHANGED($hWnd, $iMsg, $wParam, $lParam) $iExitLoop = False EndFunc ;==>WM_WINDOWPOSCHANGED ; SetBitMap Func SetBitmap($hGUI, $hImage, $iOpacity) Local $hScrDC, $hMemDC, $hBitmap, $hOld, $pSize, $tSize, $pSource, $tSource, $pBlend, $tBlend $hScrDC = _WinAPI_GetDC(0) $hMemDC = _WinAPI_CreateCompatibleDC($hScrDC) $hBitmap = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hImage) $hOld = _WinAPI_SelectObject($hMemDC, $hBitmap) $tSize = DllStructCreate($tagSIZE) $pSize = DllStructGetPtr($tSize) DllStructSetData($tSize, "X", _GDIPlus_ImageGetWidth($hImage)) DllStructSetData($tSize, "Y", _GDIPlus_ImageGetHeight($hImage)) $tSource = DllStructCreate($tagPOINT) $pSource = DllStructGetPtr($tSource) $tBlend = DllStructCreate($tagBLENDFUNCTION) $pBlend = DllStructGetPtr($tBlend) DllStructSetData($tBlend, "Alpha", $iOpacity) DllStructSetData($tBlend, "Format", $AC_SRC_ALPHA) _WinAPI_UpdateLayeredWindow($hGUI, $hScrDC, 0, $pSize, $hMemDC, $pSource, 0, $pBlend, 2) _WinAPI_ReleaseDC(0, $hScrDC) _WinAPI_SelectObject($hMemDC, $hOld) _WinAPI_DeleteObject($hBitmap) _WinAPI_DeleteDC($hMemDC) EndFunc ;==>SetBitmap |
Отправлено: 10:23, 01-07-2010 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Инфо - [решено] Создание собственной темы оформления, связанной с фоном экрана входа в Windows 7 | Smarty | Оформление Windows 11/ 10 / 8 / 7 / Vista | 14 | 07-10-2011 07:11 | |
Реально ли такое сделать, и если реально, то как? | Pliomera | Флейм | 8 | 22-03-2010 12:24 | |
Sony Ericsson запустила в продажу телефон с прозрачным экраном | OSZone News | Новости информационных технологий | 0 | 17-12-2009 19:30 | |
Заливка прозрачным цветом? | D@n1k007 | Цифровое изображение | 4 | 24-06-2009 16:25 |
|