AHK贴图
q:: ;draw bitmap/icon onto GUI vToggle := !vToggle vMgnX := 5, vMgnY := 5 ;vImgW := 32, vImgH := 32 vImgW := 256, vImgH := 256 vImgX := vMgnX, vImgY := vMgnY vWinW := vImgW + 2*vMgnX vWinH := vImgH + 2*vMgnY if vToggle hBitmap := LoadPicture(A_AhkPath, Format("W{} H{}", vImgW, vImgH)), vImgType := 0 else hIcon := LoadPicture(A_AhkPath, Format("W{} H{}", vImgW, vImgH), vImgType) ;WinGet, hWnd, ID, ahk_class Notepad Gui, New, +HwndhGui Gui, Show, % Format("W{} H{}", vWinW, vWinH) hWnd := hGui hDC1 := DllCall("user32\GetDC", Ptr,hWnd, Ptr) if (vImgType = 0) ;IMAGE_BITMAP := 0 { hDC := DllCall("gdi32\CreateCompatibleDC", Ptr,hDC1, Ptr) hBitmapOld := DllCall("gdi32\SelectObject", Ptr,hDC, Ptr,hBitmap, Ptr) DllCall("gdi32\BitBlt", Ptr,hDC1, Int,vImgX, Int,vImgY, Int,vImgW, Int,vImgH, Ptr,hDC, Int,0, Int,0, UInt,0x00CC0020) ;SRCCOPY := 0x00CC0020 DllCall("gdi32\SelectObject", Ptr,hDC, Ptr,hBitmapOld, Ptr) DllCall("gdi32\DeleteDC", Ptr,hDC) } else if (vImgType = 1) ;IMAGE_ICON := 1 DllCall("user32\DrawIconEx", Ptr,hDC1, Int,vMgnX, Int,vMgnX, Ptr,hIcon, Int,vImgW, Int,vImgH, UInt,0, Ptr,0, UInt,0x3) ;DI_NORMAL := 0x3 return
这个很实用,谢谢分享~~~
嗯嗯 确实占用内存更少!更加稳定!!