Тема: AHK: Прозрачный GUI с библиотекой GdiP
Данный скрипт демонстрирует GUI окно с прозрачными краями, при помощи обычной Png/Bmp картинки с Альфа-каналом.
; Code from http://www.autohotkey.com/board/topic/80924-make-windows-background-transparent-but-not-its-content/?p=514404
#SingleInstance, Force
#NoEnv
detecthiddenwindows on
SetBatchLines, -1
onexit exit_
#include gdip.ahk ;download http://www.autohotkey.com/forum/topic32238.html
If !pToken := Gdip_Startup()
{
MsgBox, 48, gdiplus error!, Gdiplus failed to start. Please ensure you have gdiplus on your system
ExitApp
}
Gui, 1: -Caption +E0x80000 +LastFound +OwnDialogs +Owner +alwaysontop
Gui, 1: Show, NA
gui +lastfound
hwnd := WinExist()
sFile=%a_scriptdir%\BG.bmp
pBitmap:=Gdip_CreateBitmapFromFile(sFile)
Gdip_GetDimensions(pBitmap, w, h)
hbm := CreateDIBSection(w,h)
hdc := CreateCompatibleDC()
obm := SelectObject(hdc, hbm)
pGraphics := Gdip_GraphicsFromHDC(hdc)
Gdip_DrawImage(pGraphics, pBitmap,0,0,w,h)
UpdateLayeredWindow(hwnd, hdc, (A_ScreenWidth-w)//2, (A_ScreenHeight-h)//2, w,h)
OnMessage(0x201, "WM_LBUTTONDOWN")
return
WM_LBUTTONDOWN()
{
PostMessage, 0xA1, 2
}
esc::
exit_:
SelectObject(hdc, obm)
DeleteObject(hbm)
DeleteDC(hdc)
Gdip_DeleteGraphics(pGraphics)
Gdip_DisposeImage(pBitmap)
Gdip_Shutdown(pToken)
ExitApp
Скриншот с примером:
Используется библиотека Gdip: http://www.autohotkey.com/forum/topic32238.html
Код взять отсюда: http://www.autohotkey.com/board/topic/8 … /?p=514404