in _DrawString proc, Add:
invoke GdipDeleteStringFormat,GdiPlusStringFormat
And replace MainDraw proc with:
MainDraw proc hwnd:DWORD,hWParent:DWORD,pWave:DWORD
LOCAL hdc:HDC,memDC:HDC
LOCAL bitmap:PVOID
LOCAL hBmp0:HBITMAP
LOCAL hBmp:HBITMAP
LOCAL blend:BLENDFUNCTION
LOCAL rect:RECT,path:PVOID,brush:PVOID,color:DWORD,count:DWORD,pen:dword
LOCAL graphics:PVOID
mov hdc,rv(GetDC,hWParent)
invoke GetWindowRect,hwnd,ADDR rect
mov edx,rect.right
mov ecx,rect.bottom
sub edx,rect.left
sub ecx,rect.top
mov rect.right,edx
mov rect.bottom,ecx
mov esi,pWave
invoke GdipCreateBitmapFromScan0,rect.right,rect.bottom,0,PixelFormat32bppPARGB,0,addr [esi].INFO.BitMap
invoke GdipGetImageGraphicsContext,[esi].INFO.BitMap,ADDR [esi].INFO.Graphics
;---------------------------------------------------------
invoke DrawRoundRect,pWave,0,0,rect.right,rect.bottom,1,TRUE;
invoke _TIMER
invoke _DrawString,pWave,addr Time,100,100
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
mov blend.BlendOp,AC_SRC_OVER
mov blend.BlendFlags , 0
mov blend.AlphaFormat,AC_SRC_ALPHA
mov blend.SourceConstantAlpha, 255
mov memDC,rv(CreateCompatibleDC,hdc)
invoke GdipCreateHBITMAPFromBitmap,[esi].INFO.BitMap,ADDR hBmp0,0
mov hBmp,rv(SelectObject,memDC,hBmp0)
invoke UpdateLayeredWindow,hwnd,0 ,ADDR rect,ADDR rect.right, memDC,addr ptZero, 0,addr blend , ULW_ALPHA
invoke DeleteObject,rv(SelectObject,memDC,hBmp0)
invoke DeleteObject,hBmp
invoke DeleteDC,memDC
invoke DeleteDC,hdc
invoke GdipDisposeImage,[esi].INFO.BitMap
invoke GdipDeleteGraphics,[esi].INFO.Graphics
ret
MainDraw endp