Attribute VB_Name = "APIDraw" ''You can use the Windows API and some masking to ''accomplish this requires some planning ahead, ''such as making a mask file with the white background ''you mention (and making it black in the image ''you want to "overlay" on the screen) ''Examples of how I've done this in a program of mine ''are below: ' Declare the Windows API function (for details see AllAPI.net) Public Declare Function BitBlt _ Lib "gdi32" (ByVal hDestDC As Long, _ ByVal xDest As Long, ByVal yDest As Long, _ ByVal nWidth As Long, ByVal nHeight As Long, _ ByVal hSrcDC As Long, _ ByVal xSrc As Long, ByVal ySrc As Long, _ ByVal dwRop As Long) As Long Public Function dBlankOut() ' This "blanks out" where the new image will overwrite the old (masking) dBlankOut = BitBlt(frmResources.picWork.hDC, _ frmResources.picWork.ScaleWidth - Mask.ScaleWidth, 0, _ Mask.ScaleWidth, Mask.ScaleHeight, _ Mask.hDC, 0, 0, vbSrcAnd) End Function Public Function dPutImage() ' This puts the new image in the black area created by the masking dPutImage = BitBlt(frmResources.picWork.hDC, _ frmResources.picWork.ScaleWidth - Overlay.ScaleWidth, 0, _ Overlay.ScaleWidth, Overlay.ScaleHeight, _ Overlay.hDC, 0, 0, vbSrcPaint) End Function