有这么一个函数,可以给frame这样的控件加上背景图片,不过问题在于,加上背景以后caption没了,边框线没了,大家有啥好招?
Private Sub SetBackGroundImage(aobj As Object, astrImgFilePath As String)  'SetBackGroundImage(控件名称,图片文件的路径) Dim lngDc      As Long
 Dim lngImgDc   As Long
 Dim pBmp       As IPictureDisp
 
 Set pBmp = LoadPicture(astrImgFilePath)
 
 lngImgDc = CreateCompatibleDC(0)
 
 SelectObject lngImgDc, pBmp.Handle
 
 lngDc = GetDC(aobj.hwnd) BitBlt lngDc, 0, 0, aobj.Width, aobj.Height, lngImgDc, 0, 0, vbSrcCopy Set pBmp = Nothing
 
 DeleteDC lngImgDc ReleaseDC aobj.hwnd, lngDc
 
End Sub

解决方案 »

  1.   

    如果要保留Caption,加入图片后整体感觉不协调,建议去掉Caption,用Lable在Frame上方替代。
    修改BitBlt的X,Y参数:
    BitBlt lngDc, 2, 8, aobj.Width, aobj.Height, lngImgDc, 0, 0, vbSrcCopy
      

  2.   

    把图片改改,把你要的caption写到图上
      

  3.   

    不过我觉得还是自己自制一个ocx来得容易,
      

  4.   

    那么费劲,还不如在frame上放个picturebox,再在这个picturebox放控件,反正frame和picturebox都可以做容器,这样frame的caption也不会没了,干嘛给自己找麻烦.
      

  5.   


    picture 加 frame 应该就可以
      

  6.   

    自己做了一个frame的ocx,可以在上变放背景图,不过就是处理caption的时候没仔细弄,那个边框线和caption互相干扰,很不爽,不过懒得计算,先将就用用了