大虾救救。

解决方案 »

  1.   

    窗口虽然可以透明,但却要2000以上才支持
    你说的这种透明,大多都是模拟的,即把背景重画到按钮上,看起来就透明了
    你可以参考这个代码,上面就有透明按钮
    http://www.vbaccelerator.com/home/VB/Code/Libraries/Subclassing/Tile_a_Bitmap_Into_a_TextBox/article.asp
      

  2.   

    正在研究,真的谢谢你,会给你加分,但这个比较麻烦,例子带了一个好像是TIMER(还没有继续研究)的控件,我现在程序已经发布出去了,不能再加控件了。
      

  3.   

    那个 ssubtmr6.dll 并不是什么控件,只是一个 Hook 的类库,该类库也有源码
    因为 要捕获 windows 消息一般都要用到钩子,所以该类库很普遍,你也可以直接到其网站上下载该类库的源码加到你的工程,这里所有都是开源的
      

  4.   

    cOwnerDrawButton 是控制重画 按钮的类   Set m_cButtons = New cOwnerDrawButton
       m_cButtons.Attach Me '加入窗体
       m_cButtons.AddhWnd cmdOK.hwnd  ‘加入按钮句柄在 cOwnerDrawButton 是控制重画 按钮的类 中
    是通过捕捉 WM_DRAWITEM  消息进行重画的
    pDrawButton
      

  5.   

    哦,原来是这样,不过我的按钮的背景不是窗体,而是一个img,我把用SSCOMMAND做的那个图放到上面来看一下。
    这里有地址:http://www.xinyuanft.com/ann.jpg,希望大虾参考一下。
      

  6.   

    和用窗体还是用Picture 做容器没有太大关系,
    将frmBitmapDialog窗体控件粘贴到 Picture1 中,设置Picture1.Autoredraw=truePrivate Sub Form_Paint()
       ' Draw a dark background: '这里填充需要用来做背景得容器,如果是Picture 就改为 Picture1.hdc,picture1.scalewidth.....
       m_cBack(UBound(m_cBack) - 1).TileArea Picture1.hDC, 0, 0, _
          Picture1.ScaleWidth \ Screen.TwipsPerPixelX, _
          Picture1.ScaleHeight \ Screen.TwipsPerPixelYEnd Sub
    这样, 就是在Picture1 中透明了
      

  7.   

    Set backNormal = LoadPicture(App.Path & "\back.bmp")
       Set backLite = LoadPicture(App.Path & "\backlite.bmp")
    读入图片
       ReDim m_cBack(1 To textBoxes.Count + 2) As cTextBoxBackground
    定义 背景图数组
       Set m_cBack(textBoxes.Count + 1) = New cTextBoxBackground
       m_cBack(textBoxes.Count + 1).SetBackdrop backNormal
       Set m_cBack(textBoxes.Count + 2) = New cTextBoxBackground
       m_cBack(textBoxes.Count + 2).SetBackdrop backLite
      

  8.   

    Private Property Get IOwnerDrawButton_ButtonContainerhWnd() As Long
       IOwnerDrawButton_ButtonContainerhWnd = Picture1.hwnd
    End Property
      

  9.   

    http://www.vb99.com/product/gifbutton/register.asp倒有一個 ,不過要注冊
      

  10.   

    img不是一个容器,另外,那些按钮只是随便放在窗体上,而那个IMG只在窗体上的一部分,我再研究一下。
      

  11.   

    原来以为按钮背景加图片很简单,但实验之后再加上查资料,发现不是那么回事,麻烦程度超过给TEXTBOX加背景,正在研究中,希望下星期解决,提示,只有用户自画按钮(BUTTON类型的一种)才能改变字体颜色及背景,但MSDN又说只有PUSHLIKE,DEFAULTPUSHLIKE及另一种BUTTON始终使用系统定义的颜色及背景来PAINT,并没有提到其他类型的BUTTON,所以你可以试试在程序中改变VB的BUTTON类型,我的实验也才到这步,因为还有其他事情,所以还没有继续下去。
    感觉做这类事情用VB是比VC麻烦许多,但没办法,做VB到现在这种程度也难回头了。
      

  12.   

    都说了,并没有真正意义上的透明,所谓的透明是将背景重画在按钮上的
    所以一定要背景容器这是我 从作者源代码 制作的一个简单的窗体代码
    http://www.federal.net.cn/newtest.rar
    自己看看吧
      

  13.   

    我试了一下,目前还有这样的问题:
    我需要显示容器中的另一个图片(在这个按钮下面)做背景,如这张图:http://www.xinyuanft.com/ann.jpg 这张图中,我详细比较了一下使用后的效果。
    大家看看便知。
      

  14.   

    我昨天实验了一下,是自己创建Owner Draw BUTTON,背景、字体都可以实现,就是麻烦些,所有的重画包括按下和弹起都要自己写代码实现,现在只剩下文字居中没弄好,今天很忙,明天再看看。