VB 怎么保存图片框被圆形裁剪 后的图像

VB 如何保存图片框被圆形裁剪 后的图像
如题,在VB工程中的Form中添加一个图片框Pic,然后加载图片,然后使用
hRgn = CreateRoundRectRgn(0, 0, pic.width, pic.height, pic.height*0.3, pic.height*0.3)
SetWindowRgn Pic.hWnd, hRgn, True
将图片框Pic裁剪为圆角矩形,然后使用
ImgData = GetWindowBmp(Pic, Pic.hWnd, BITMAPINFO, 32&) 
获取Pic窗口上显示的位图数据保存入数组ImgData()中,然后再将数组数据再写入Pic中,
SetDIBits 0, Pic.Image, 0, BITMAPINFO.bmiHeader.biHeight, ImgData(0), BITMAPINFO, BI_RGB
最后再保存 SavePicture Pic.image,app.path & "\test.bmp"

有趣的事情发生了:如果所加载的图片文件的尺寸小于等于pic的尺寸,则保存出来的为圆角矩形图像;但当所加载的图片文件的尺寸大于pic的尺寸或者大于屏幕的尺寸之后,或者将pic隐藏之后,则保存出来的图像,要么是一片黑,或者多出黑边区域,或者将屏幕中本来不属于pic中的内容也一起保存起来了。
如何才能确保在图片尺寸大于图片框的尺寸,或者图片框处在隐藏状态下,能完整准确地保存圆角矩形裁剪后的图像呢?

我有工程实例,想研究的朋友,留下联系方式,我发给你看看。
vb  图像 裁剪 保存图像

------解决方案--------------------
lpfdxx@qq.com